Web Worker多线程

2023-12-28  本文已影响0人  码农私房菜
Web Worker是HTML5引入的一项技术,它允许在浏览器中创建多线程环境,将一些耗时的计算任务放在后台线程中执行,以避免阻塞主线程,提高页面的响应性和性能。

Web Worker具有以下特点和用途:

使用
// 创建Worker对象实例
var worker = new Worker('http://localhost:3000/worker.js'); // 只会执行url指定的脚本,必须同源

// 监听并接收worker线程消息
worker.onmessage = (e) => {
    console.log(`收到worker线程消息:${e.data}`);
    work.terminate(); // 销毁worker线程
};

// 向worker线程发送消息
worker.postMessage('hello worker')
// 监听并接收主线程发送的消息
self.onmessage = (e) => { // 在子线程中,self代表worker子线程的全局对象,也可以用this代替self,或者省略也行。
    console.log(`收到主线程消息:${e.data}`); 
    //向主线程发送消息
    postMessage('你好,我是worker!');

    // 子线程自己关闭
    // self.close()
}
上一篇 下一篇

猜你喜欢

热点阅读