文章目录
前言
JS采用的是单线程机制,所有的任务只能在一个线程上完成,前面的任务没有完成就只能等待。随着计算机计算能力的增强,多核处理器的出现,单线程已不能充分的发挥计算机的算力,WebWorker就是给主线程创建多线程的环境,实现主线程运行时,WebWorker线程在后台运行,两者互不干扰,待WebWorker线程任务完成后,将结果返回给主线程。
一、WebWorker多线程机制
1. worker发展历史
worker在2009年就提出了草案,到2012年的时候,主流浏览器就已经全面的支持worker了。
worker的规范有两个,分别是DedicatedWorker和SharedWorker。SharedWorker浏览器的兼容性问题较大,基本不使用,现在大家普遍所讲的worker都是遵从DedicatedWorker规范。
从图中可以看到,SharedWorker的兼容性一路标红。
// 创建DedicatedWorker
const worker = new Worker("worker.js");
// 创建SharedWorker
var myWorker