我正在开发一个性能高的应用程序,该应用程序中的工作负载可以轻松地细分为Web Worker。
但是,由于使用的消费者硬件不同,我要到运行时才能知道最佳的工作程序数。在运行时,我可以使用navigator.hardwareConcurrency找到最佳数字。
我的问题是,我想不出一种产生未知数量工人的方法。例如,如果我想产生3位网络工作者,我可以这样做:
var worker0 = new Worker("workerScript.js");
var worker1 = new Worker("workerScript.js");
var worker2 = new Worker("workerScript.js");
是否有一种方法可以生成和侦听“ x”个工人的事件?
答案 0 :(得分:2)
let workerList = [];
for (let i = 0; i < window.navigator.hardwareConcurrency; i++) {
let newWorker = {
worker: new Worker('cpuworker.js'),
inUse: false
};
workerList.push(newWorker);
}