javascript - 多个 JavaScript worker

标签 javascript html multithreading web-worker worker

好的,所以我正在编写一个代码,其中我启动了 5 个 worker ,他们都睡了 0-10 秒的随机时间,然后他们返回他们睡了多长时间。当所有 worker 都睡完后,经理将其输出到 html

到目前为止,我已经让我的 5 个 worker 随机 sleep ,但不知道如何处理对经理的多重响应。 获取随机数的 worker.js 方法,为该随机数休眠然后发送它休眠了多长时间 manager.js(下)

window.onload = function(){
var w1= new Worker("worker.js");
var w2= new Worker("worker.js");
var w3= new Worker("worker.js");
var w4= new Worker("worker.js");
var w5= new Worker("worker.js");

var worker = [w1,w2, w3, w4, w5]

for (i =0; i < worker.length; i++){

worker[i].postMessage("sleep");

    worker[i].onmessage = function(event) {
         ndate = new Date();
         message = ndate + " Worker says " + event.data;
         document.getElementById("output").innerHTML = message;
         }
}


}

此代码有 5 个工作人员,但消息是来自最后一个工作人员的消息。所以我的问题是如何在管理器中收集这 5 条消息,等待所有 5 条消息然后发送到 html?

最佳答案

考虑到您对其他答案的回应,这应该可行。

window.onload = function(){

    var w1= new Worker("worker.js");
    var w2= new Worker("worker.js");
    var w3= new Worker("worker.js");
    var w4= new Worker("worker.js");
    var w5= new Worker("worker.js");

    var worker = [w1,w2, w3, w4, w5];

    var wokenUp = 0;
    var allMessages = "";

    for (i =0; i < worker.length; i++){

        worker[i].onmessage = function(event) {
            ndate = new Date();
            message = ndate + " Worker says " + event.data;

            allMessages += message;
            wokenUp++;

            if (wokenUp == worker.length){
                document.getElementById("output").innerHTML = allMessages;
            }
         }

        worker[i].postMessage("sleep");
    }
}

关于javascript - 多个 JavaScript worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27117395/

相关文章:

javascript - Angular JS UI 路由

java - 使用 Javascript 将 doc/docx 批量转换为 pdf

javascript - 将 onClick 应用于 Iframe

html - 纯 CSS 固定表头

multithreading - 为什么 Windows NT 线程具有独立的用户模式/内核模式堆栈?

python - 在 Django/Gunicorn 应用程序中拥有持久(非守护进程)线程的危险?

javascript - 将对象属性传递给 D3 'enter()'

带有 .Ajax()/childNodes 的 Javascript 选择器

jquery - 为什么 Chosen Select DropDown 位于页脚 DIV 下方

C# 多线程多类 gui 应用程序,我这样做对吗?