如何从线程获取访问全局变量?

时间:2019-09-07 10:23:32

标签: javascript node.js multithreading global-variables

我正在使用节点js worker_threads,我需要从线程访问全局变量。因为我有大对象,类似的方法等,并将其发送到每个线程-不好的主意。 如何与线程共享全局变量?还是我应该向每个线程发送数据?

我试图使用全局对象,例如:process,global-它看不到我的变量。

// main.js
const { Worker } = require('worker_threads'),
      threads_count = 10
;
global.a = "a"
process.b = "b"
for( let i = 0 ; i < threads_count ; i ++ ) {
  const worker = new Worker(`${__dirname}/worker.js`);
  worker.postMessage({ i })
  worker.on("message", message => console.log(message) )
}
// worker.js
const { parentPort } = require("worker_threads")
parentPort.on('message', async data => {
  console.log(process.b, global.a) // undefined, undefined
});

0 个答案:

没有答案