Сортировка веб-работников в массив (для последующего использования) - PullRequest
0 голосов
/ 06 мая 2018

Цель: создать многоразовый массив веб-работников для доступа к каждому из них в зависимости от его положения в массиве, например, работники [1] получат доступ к первому встроенному ядру, 2 - ко второму и так далее. Это делается для того, чтобы отправлять им сообщения при необходимости (не только при создании).

Код ниже не работает (из-за того, что рабочий не определен во время пост-сообщения во втором цикле for) Если возможно, хотел бы, чтобы кто-то дал исправление, если он может, или причину, по которой это невозможно, и объясните разницу между этим и потоком .js пул потоков.

Спасибо, ребята, если хотите, это проще говоря, просто покажите способ упорядочить группу работников в соответствии с порядком, в котором они были созданы.

 let workers=[]
 workersWork();
 function workersWork() {

    let coreAmount  =window.navigator.hardwareConcurrency;





    for(let i = 0;i<coreAmount ;i++){

        workers.push(new Worker("./testChildWorker.js"))

    }

 if(workers.length === coreAmount){
    for (let i = 0; i< coreAmount;i++){
        let worker = workers[i]
        let message     ={Procedure:"start",coreCount:i,version:dbVersion};
        worker.postMessage(message);
        worker.onmessage =  messageFunction

     }
    }};




    function messageFunction(event) {
    let worker= workers[event.data.coreCount]
    worker.postmessage("hello")
    let message = event.data;
    alert(message.object.id);

    }
...