js开启子线程及其使用

本文介绍了JavaScript中的子线程特性,包括其限制(如同源策略、受主线程控制、DOM操作权限等),以及如何通过Worker进行进程间通信。建议控制子线程数量与CPU核心数相当,使用`window.navigator.hardwareConcurrency`获取并发数。
摘要由CSDN通过智能技术生成

众所周知,js是单线程,但是可以开启子线程来帮忙处理一些数据,但是这个子线程是有限制的
1.必须是同源
2.完全受主线程控制
3.不能在子线程中操作dom节点
4.子线程没有window,可以使用self
5.等等
具体的查看官网
进程切换是要耗时间的,所以进程不宜开太多,一般等于CPU内核数最好,可以通过window.navigator.hardwareConcurrency来获取

使用方法
//主进程,也就是平时的普通js文件
console.log("我是主线程");
const myworker = new Worker("/js/child.js", { name: "myWorker" });
myworker.postMessage("Hello World");  //给子进程传值
myworker.onmessage = function (event) {
  console.log(event.data);   //接收子进程的传值
};

//子进程,子进程里面使用有很多限制,建议看官网
console.log("我是子线程");
self.addEventListener('message',function(e){
	var data = e.data;
	console.log(data)
},false)
self.postMessage("我是子线程发的信息");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值