zoukankan      html  css  js  c++  java
  • Javascript多线程引擎(八)

    Javascript多线程引擎(八)

          Javascript 多线程项目, 做到现在已经快3个月了(加上前期准备编译原理和必要的文档), 该项目(js-engine)已经快进入尾声了, 现在该引擎的特性包括如下:

          1. 全C语言代码(适合嵌入式)

          2. 没有正则表达式(不能算是好的特性 , 以后有机会可以添加)

          3. 没有Unicon支持(也不是好特性, 只是支持Ascii)

          4. 没有lable with 语句了(相信大家在Javascript编程中用这两个特性把)

          5. 解析器报错(可以调试语法是否发生错误, 具体的参数在JsParser.h 的几个宏)

          6. 内置了几个基本类型[Object , Function , String , Boolean, Number, Array , Thread ,Global]

          7. 支持异常系统(该特性 可以大大的减少return 之后,对函数判断的语句 ^_^ , 并且支持Stack 打印, 保证你能追踪到错误 , 最后也用来释放非托管资源)

          8. 支持多线程: synchronzied关键字,可以对Object, 或者 函数声明前添加. 并且提供了join ,sleep,  yield 线程特性函数. 帮助你 完成线程管理

          9. 简易的NIO API构造函数, 

                JsThread JsNIO(JsThreadFn work,void* data, struct JsObject* o, int openEngine);
    

           就可以开启额外的线程, 来完成IO工作, 完成后加入到调度队列中.

           也可以开启另外一个引擎, 调度到新引擎的调度队列中.

          10. 在该系列第一篇文章中,说引擎不支持垃圾回收^_^,  现在决定还是支持该特性,毕竟没有垃圾回收的功能,这个引擎可能永远停留在Github上了。

          11. JIT, 这个难度比较大, 在完成垃圾回收后, 尽量提供该特性.

         添加了垃圾回收模块后, 感觉现在这个引擎和lua之类的嵌入式引擎的差距不是很大了 ^_^.

        接下来就添加几个多线程 test case:

                    Thread.join 测试用例:

          

        测试结果:

          

        Sleep.js 测试:

          

        测试结果:

          

        希望下次写文章的时候, 已经把垃圾回收做出来了~~ 

        谢谢大家的支持.^_^

        项目地址:

          github.com/darkgem/js-engine

  • 相关阅读:
    Python Revisited Day 13 (正则表达式)
    Python Revisited Day 06 (面向对象程序设计)
    Python Revisited (变量)
    Python Revisited Day 05(模块)
    Python Revisited Day 04 (控制结构与函数)
    Python Revisited Day 03 (组合数据类型)
    Numpy
    Python Revisited Day 01
    Python3使用openpyxl读写Excel文件
    Python3操作YAML文件
  • 原文地址:https://www.cnblogs.com/tickobject/p/3632472.html
Copyright © 2011-2022 走看看