基于 V8 的多线程 JavaScript 运行环境 Napa.js

MIT
C/C++ JavaScript
跨平台
微软
2017-10-19
王练

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 执行和事件轮询拆分到不同的线程中。

Quick Start

var 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);
    });
的码云指数为
超过 的项目
加载中

评论(8)

Theobob
Theobob
开源才是王道
Honghe
Honghe
nodejs 原生的单线程的确很多场景不够用
gaubee
gaubee
fibjs是从底层改造,在生态上有一定的劣势,这个是一个npm lib,试用范围更广
atuxe
atuxe
关注
卖爷爷的老红薯
卖爷爷的老红薯
js多线程也这么牛逼了啊,真是谁也挡不住了。
gonnavis
gonnavis
微软在js上动作频频啊。虽然浏览器做的不怎么样,但是typescript,vscode特别是以前ajax等技术对js发展贡献还是很大的
y
yuu2lee4
貌似fibjs更占优势?
notreami
notreami
jser不是振振有词的说过,js不需要多线程嘛?

Napa.js 0.2.0 发布,多线程 JavaScript 运行环境

Napa.js 0.2.0 已发布,更新内容如下: 支持在 zone API 中传送 ArrayBuffer 和 SharedArrayBuffer 引入 napa.sync.Lock 以进行同步处理 更多详情和下载地址请查阅发行列表。 Napa.js 是微软...

2018/01/20 07:21

Napa.js 0.1.4 发布,多线程 JavaScript 运行环境

Napa.js 0.1.4 已发布,更新内容如下: 修复和改进 napa.js 文档和示例 修复 Linux 和 Mac OS 上的 napa-binding.node 共享库路径 更多详情和下载地址请查阅发行列表。 Napa.js 是微软开源的...

2017/10/23 07:42

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

暂无博客

返回顶部
顶部