js 多线程

本文介绍了多线程的概念,以及在JavaScript中如何实现多线程。由于JavaScript本身不支持多线程,文章提到了两种解决方案:对于老式浏览器,可以使用Concurrent.Thread.js库;而对于现代浏览器,可以利用HTML5的WebWorker API来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是多线程?

多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的的计算机因有硬件支持的能力而能够在同一时间执行多于一个线程的,进而提升整体处理性能.具有这种能力的系统包括对称多处理机,多核心处理器以及芯片级多处理或同时多线程处理器.在一个程序中,这些独立运行的程序片段叫作线程(Thread),利用它编程的概念就叫做”多线程处理”

JavaScript 本身是不支持多线程的

那么怎么在JavaScript中使用多线程呢?
1.老式浏览器 Concurrent.Thread.js
2.现代浏览器 webwork

Concurrent.Thread.js

<script src='./jquery.js></script>
<script src='./Concurrent.Thread.js></script>
<script>
    Concurrent.Thred.create(function(){
        //code
    })
</script>

或者这么用

<script src='./jquery.js></script>
<script src='./Concurrent.Thread.js></script>
<script>
    function fn(){
        //code
    }
    Concurrent.Thred.create(fn)
</script>

也可以简写成这样

<script src='./jquery.js></script>
<script type="text/javascript" src="./Concurrent.Thread.js"></script>
<script type="text/x-script.multithreaded-js">
 //code
</script> 

WebWork

HTML5 新增的一个多线程方法

//主线程
var worker  = new Worker('./sonThread.js')

worker.postMessage({first:1,second:2})   //发送信息给子线程
### 
worker.onmessage = function(event){      //接收子线程的信息
    console.log(event.data)
};

worker.close()    //关闭子线程
//子线程
function run (data) {
  postMessage(data.first + data.second)      //向主线程返回数据
}

onmessage = function (event) {   //接收主线程的参数
  run(event.data)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值