问题标签 [worker-thread]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
738 浏览

javascript - nodejs工作线程有超时吗?

我使用节点工作线程在其中运行 setTimeout 循环,但我发现它没有按我的预期运行。

工作线程中的代码只运行了大约 13 次,并且它没有错误地停止。

工作线程只运行 setTimeout 中的代码 13 次。不是10000次。为什么?

0 投票
1 回答
718 浏览

node.js - 节点 | worker_thread | 在工作人员中保持活动的 tcp 连接?

使用节点 12 的worker_threads,是否适合在工作人员中建立远程连接并保持这些连接处于活动状态?

我并不是说我们可以用sharingnodemaster和.workersclusterfork

这个想法是在工作人员内部建立安全连接池,以便在需要时使用。

假设我有 10 名工人。创建工作人员时,会创建一些预先建立的“TLS”连接(流)到服务器 X、Y 和 Z,并且工作人员被标记为“就绪”

每次我使用工作人员处理“繁重”任务(mapReduce 等)时,如果我需要在此过程中向服务器 X、Y 或 Z 发布数据或从服务器 X、Y 或 Z 获取数据,我使用适当的“TLS”连接已经从池中建立。

任务完成后,结果将返回给主服务器,工作人员只需执行新的/下一个任务。

1) 你看到这样做有什么副作用/影响吗?

2)在“主线程”(主线程)上拥有“TLS”连接池会更好。如果在任务期间工作人员内部需要“远程”数据,请使用“postMessage”方法与“master”通信(反之亦然)。

谢谢

0 投票
1 回答
1616 浏览

node.js - node worker_threads console.log 在 postMessage 之后

节点 v10.16.3

我正在运行worker_threads节点官方文档中的示例。为了测试共享变量,我做了一些更改。这是一个例子

工作线程.js

并且有一个用于测试此示例的脚本:

主线程和工作线程都a可以访问。当我运行这段代码时,输​​出是

我想知道为什么工人的 postMessage 早于工人的 console.log

0 投票
0 回答
69 浏览

c++11 - 由工作线程托管的 Boost.Fibers 似乎不起作用——为什么?

我想使用由工作线程托管的 Boost.Fibers 而不仅仅是线程。我想在编写下面显示的代码时,我已经按照手册中的所有内容完成了所有操作,但它似乎不起作用——输出中缺少“<anonymous> called”。

有谁知道为什么?

0 投票
1 回答
1143 浏览

node.js - 如何在 Node.js 中的两个工作线程之间创建直接通信通道

new MessageChannel有没有办法在两个工作线程之间创建直接通信通道?例如:P我使用worker_threadAPI 创建了一个主线程,它创建了两个工作线程W1W2

我想直接启用W1和之间的通信,W2而不是通过Pusing进行通信parentPort

0 投票
2 回答
3240 浏览

javascript - 节点:错误选项:--experimental-worker

我正在尝试在node.js.

我保存上面的代码并在终端上index.js运行。node --experimental-worker index.js我收到以下错误:

节点:错误选项:--experimental-worker。

v8.16.0的 Mac 中安装了节点。

0 投票
1 回答
6288 浏览

node.js - 使用 worker_threads 的打字稿配置

我试图在 Typescript 中使用 WebWorkers,但遇到了一个问题。我已经安装了@types/node 并更新了所有内容。'worker_threads' 不再是实验性的,并且处于 node.js 的稳定版本中。

这是我的打字稿配置:

当我尝试像这样在我的打字稿文件中导入时:

我收到错误:

我也使用 Vue.js 作为前端。我已经尝试了我能找到的一切,所以我很高兴得到每一个帮助。如果这不起作用,我将适当地切换到 JavaScript。谢谢。

0 投票
2 回答
4684 浏览

javascript - 如何防止 Node.js 12 工作线程立即终止?

我有一个运行 Express 服务器的 Node.js 应用程序和一个定期执行某些操作的工作线程。

当服务器停止时,我需要清理与工作线程启动时打开的外部系统的连接。

我尝试在进程上为 SIGTERM 和 SIGINT 信号添加处理程序,但这不起作用,工作线程中的处理程序函数没有被调用,当父进程收到 SIGINT 或 SIGTERM 时,它立即退出并退出代码 1,虽然父进程也有一个处理程序,这些处理程序确实被调用。

这是一个重现问题的简单代码示例:

开始.js

worker.js

当我启动soWorker.js时,当我用 CTRL+C 中断进程时,我会在控制台上得到这个输出:

期望发生的是这样的:

我希望stop调用工作线程中的函数,以便我可以使用它来关闭与外部系统的连接,然后优雅地退出工作线程进程并返回代码 0。

相反,工作线程以代码 1 退出,这是工作线程停止时的默认值

我的问题:

当主进程终止时,如何在我的工作线程中执行一些清理代码?

我是否采用上述方法走在正确的轨道上?

0 投票
1 回答
7852 浏览

node.js - Can't resolve 'worker_threads' in create-react-app

I'm trying to use "worker_threads" in my react-app for some cpu-intensive works. but react-app can't find "worker_threads" in node.js library.

Here is my code:

"npm start" script throws following error: "Can't resolve 'worker_threads' in 'C:\path\to\fibonacci.js'"

  • node version: 12.13.0
  • react-scripts version: 3.2.0
0 投票
1 回答
3402 浏览

javascript - Nodejs 和 Express,使用来自工作线程的 res.send()

在 Nodejs 中,使用 Express 作为服务器,我将繁重的计算卸载到工作线程上。

在主应用程序中,我这样调用工作线程:

工人看起来像这样:

工作人员生成大量数据,“postMessage”导致服务器错误。

有没有办法将这些数据从工作线程直接发送到客户端,使用res.send()或类似的东西?
(而不是使用postMessage然后从主线程发送)?