JS中如何使用多线程
介绍
Worker可以为JavaScript创建多线程,且Worker 是运行在后台的
JavaScript,独立于其他脚本,不会影响页面的性能。主线程在运行的时候,worker也在后台运行,两者互不干扰,当worker线程完成任务后就可以将结果返回给主线。
当创建一个新的worker时,该代码会运行在一个全新的javascript的环境中,是完全和原JS隔离,这时我们把原JS(创建新worker的)脚本叫做主线程,而被创建的新的worker叫做子线程
浏览器的支持程度
除了 Internet Explorer外,其他主流浏览器均支持 Web Worker。
Worker的使用
————————————————
版权声明:本文为CSDN博主「mah666」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mah666/article/details/117170307
1. 创建Worker对象
var worker=new Worker("xxx.js"); //xxx.js是子线程所执行的js文件
2. 传入参数
worker.postMessage(参数);
3. 获取返回的参数
worker.addEventListener('message', function (e) {
console.log('message ', e.data);
});
4. 异常处理
worker.onerror = function (err) {
}
5. 终止线程(过多的开启worker线程非常浪费资源所以在使用过后可以终止它)
worker.terminate();
6. 执行的子线程中接收参数
self.onmessage = function(event) {
console.log("onmessage:",event.data);
};
7. 执行的子线程向主线程传值
postMessage(子线程中的值);
8. 子线程中终止
self.close();
文档更新时间: 2022-03-05 14:34 作者:admin