2

我想在 node.js 应用程序中创建一个工作线程并将当前上下文传递给新线程,这样我就可以在新线程中访问我的变量和函数,是否有支持它的库?如果不能,我至少可以在它们之间传递一个匿名函数吗?

4

1 回答 1

4

无法与工作线程共享上下文。这不是“Node.js 团队的意识形态”,而是 JavaScript 语言的限制,它不允许并发(例如从工作线程并发访问对象)。

一个例外是您可以使用SharedArrayBuffer.

除此之外,向工作线程发送数据或从工作线程接收数据的方法是使用postMessage. 另请参阅 Node 的完整工作线程文档

为了完整起见:有一个早期提议要向 JavaScript 添加一种新的跨线程可共享对象。与所有早期提案一样,无法保证它会最终确定或可能需要多长时间,但它确实表明对该领域有一些兴趣。

于 2021-09-07T10:35:26.647 回答