Javascript HTML5 Webworker启动同步保证
我有一点javascript我想在一个webworker中运行,我很难理解正确的方法让它们以锁定的方式工作。我从主脚本调用WebWorker,如以下简化脚本所示:Javascript HTML5 Webworker启动同步保证,javascript,html,multithreading,web-worker,Javascript,Html,Multithreading,Web Worker,我有一点javascript我想在一个webworker中运行,我很难理解正确的方法让它们以锁定的方式工作。我从主脚本调用WebWorker,如以下简化脚本所示: // main.js werker = new Worker("webWorkerScaffold.js"); // #1 werker.onmessage = function(msgObj){ console.log("Worker Reply") console.log(msgObj); doSomet
// main.js
werker = new Worker("webWorkerScaffold.js");
// #1
werker.onmessage = function(msgObj){
console.log("Worker Reply")
console.log(msgObj);
doSomethingWithMsg(msgObj);
};
werker.onerror = function(err){
console.log("Worker Error:");
console.log(err);
};
werker.postMessage("begin");
然后,免费员工脚本如下所示:
// webWorkerScaffold.js
var doWorkerStuffs = function(msg){}; // Omitted
// #2
onmessage = function (msgObj){
// Messages in will always be json
if (msgObj.data.msg === "begin")
doWorkerStuffs();
};
此代码(实际版本)按预期工作,但我很难确认它始终能够正确执行。考虑以下事项:
// webWorkerScaffold.js
var doWorkerStuffs = function(msg){}; // Omitted
// #2
onmessage = function (msgObj){
// Messages in will always be json
if (msgObj.data.msg === "begin")
doWorkerStuffs();
};
- 调用“new Worker()”,生成一个新线程李>
- 生成的线程加载速度慢(比如挂起在“//#2”)
- 父线程执行“werker.postMessage…”,但没有收件人
- 李>