创建动态数量的Web Worker Javascript

时间:2018-08-10 00:48:23

标签: javascript web-worker

我正在开发一个性能高的应用程序,该应用程序中的工作负载可以轻松地细分为Web Worker。

但是,由于使用的消费者硬件不同,我要到运行时才能知道最佳的工作程序数。在运行时,我可以使用navigator.hardwareConcurrency找到最佳数字。

我的问题是,我想不出一种产生未知数量工人的方法。例如,如果我想产生3位网络工作者,我可以这样做:

var worker0 = new Worker("workerScript.js");
var worker1 = new Worker("workerScript.js");
var worker2 = new Worker("workerScript.js");

是否有一种方法可以生成和侦听“ x”个工人的事件?

1 个答案:

答案 0 :(得分:2)

MDN

中有一个示例
let workerList = [];

for (let i = 0; i < window.navigator.hardwareConcurrency; i++) {
  let newWorker = {
    worker: new Worker('cpuworker.js'),
    inUse: false
  };
  workerList.push(newWorker);
}