Javascript多线程引擎(七)--synchronized关键字
经过两天的努力, 今天synchronzied关键字终于支持了, 如下是测试代码
thread() 是一个开启新线程的API, 后期会提供一个完整的Thtread 类, 现在就简单的使用把 ^_^
支持的语法格式为:
var a = synchronized function(){
//被同步的代码段
};
synchronzied function hello(){
//被同步的代码段
};
var lock = {};
synchronized(lock){
//根据对象同步代码
}
synchronzied(this){
//this 类型代码同步
};
这基本的四种同步方式, 和Java类似.
如下是测试log:
打印不会被中断.
这样子, 整个引擎就基本实现了类似java的同步模型, 并且提供了NIO API接口 , 具体可以看setTimeout() API。
为什么要提供synchronzied 和多线程呢? 仅仅是为了 给服务端开发的时候提供更多的选择, 可以像Node.js 一样单线程+NIO, 也可以是Java多线程+阻塞
更可以像Java多线程+阻塞+NIO。 ^_^
项目地址为 :
github.com/darkgem/js-engine