如何使用 worker_threads 在 worker 中获取 worker.threadId?

How to get worker.threadId inside a worker using worker_threads?

提问人:J9B10 提问时间:11/18/2023 最后编辑:J9B10 更新时间:11/21/2023 访问量:31

问:

我正在使用 with 模块。nodejsworker_threads

我创建了几个工人。

我需要在工作线程本身中获取每个工作线程的 ID。

我知道在模块中,只需从worker内部调用,它就会返回worker的id。clustercluster.worker.id

我需要 来执行此操作,但是当我只使用线程时,我没有看到从工作线程内部调用此功能的函数选项。worker_threads

我在文档中没有找到这方面的功能。

我最接近的是调用,但这仅适用于父线程worker.threadId

因此,我有责任通过父母转发 id,直到它通过孩子到达孩子。postMessage

这太脏了。

我想念一个类似于孩子体内的功能。cluster.worker.idworker_threads

有谁知道从孩子内部打电话的更好解决方案?worker.threadIdworker_threads

<<< 编辑 >>>

解决方案已经找到!

我找到了解决方案!

您需要添加为 .threadIdimportworker_threads

import { Worker, isMainThread, parentPort, threadId } from 'worker_threads';

并打电话给童工内部。threadId

工人会本地来。id

我在github上的官方nodejs目录中问了这个问题。

一个名叫 benjamingr 的人给出了这个解决方案。GitHub

节点.js 节点工作线程 节点节点集群

评论


答: 暂无答案