什么是多线程?
多线程(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)
}