首页 > 解决方案 > 创建动态数量的网络工作者 Javascript

问题描述

我正在开发一个性能繁重的应用程序,其中的工作负载可以很容易地细分为网络工作者。

然而,由于不同的消费硬件,我直到运行时才知道最佳的工人数量。在运行时,我可以使用navigator.hardwareConcurrency找到最佳数量。

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

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

有没有办法产生和监听来自“x”个工人的事件?

标签: javascriptweb-worker

解决方案


MDN中有一个例子

let workerList = [];

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

推荐阅读