Napa.js是微软开源的一个基于V8的多线程JavaScript运行环境。它最初被设计用于在Bing中开发不影响性能的高度迭代服务,随着发展,Napa.js被发现在CPU-bound任务中能有效补充Node.js,具备在多个V8隔离中执行JavaScript并在它们之间进行通信的能力。Napa.js作为一个Node.js的模块公开,它也可以嵌入到没有Node.js依赖关系的主机进程中。
概括来讲,Node.js 是异步的,JS代码执行和事件通知运行在一个线程中,JS代码中的耗时操作会挤占事件轮询的CPU时间。Napa.js的出现,很好的对这个缺陷进行了补充,将JS执行和事件轮询拆分到不同的线程中。
QuickStartvar napa = require('napajs');var zone1 = napa.zone.create('zone1', { workers: 4} );// Broadcast code to all 4 workers in 'zone1'.zone1.broadcast('console.log("hello world");');// Execute an anonymous function in any worker thread in 'zone1'.zone1.execute( (text) => { return text; }, ['hello napa']) .then((result) => { console.log(result.value); });
评论