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

  • 相关阅读:
    异常练习一 throw
    MAP排序
    Java正则表达式应用详解
    java多线程 sleep()和wait()的区别
    面向对象的15、18位中国大陆身份证号码解析、工具
    java学习笔记--this 关键字的理解
    Java六大问题你都懂了吗?
    Java类的声明和访问介绍
    java的五种数据类型解析
    Java集合框架的总结
  • 原文地址:https://www.cnblogs.com/tickobject/p/3632472.html
Copyright © 2011-2022 走看看