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

  • 相关阅读:
    Moinmoin wiki 中文附件名的解决办法
    TFS2012 服务器安装
    利用openssl自建CA体系
    latex 添加Bibtex 全解(使用TeXstudio)
    BlockStack常见词语
    量子计算和量子信息: 读书笔记
    Vue 中的keep-alive 什么用处?
    打包vue文件,上传到服务器
    修改vscode的文件,对应的磁盘文件不改变
    html5的 history模式和hash模式
  • 原文地址:https://www.cnblogs.com/tickobject/p/3632472.html
Copyright © 2011-2022 走看看