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