js 创建多线程的方法 Worker

JavaScript024

js 创建多线程的方法 Worker,第1张

Worker 支持主流的浏览器 IE10 以下不支持

a.js 内容

var i =0

setInterval((function () {

postMessage(i++)

}),1000)

使用 postMessage 向主线程 传送消息

var worker =new Worker('a.js') // 写入需要引入的 js

console.log(worker)

worker.onmessage =function () {

console.log(event.data)

}

//用于关闭worker线程 

 worker.terminate()

//postMessage(msg)

//postMessage方法把在新线程执行的结果发送到浏览器的js引擎线程里

worker.onmessage = function(){

//获取在新线程中执行的js文件发送的数据 用event.data接收数据

console.log( event.data )

}

setTimeout( function(){

worker.terminate()

//terminate方法用于关闭worker线程

},2000)

setTimeout( function(){

worker = new Worker("js/test22.js")

//再次开启worker线程

},3000)

说node.js单线程,是说你写的程序不能建立新的线程,v8引擎、openssl之类的里面应该是有线程的吧。

node.js的程序是分成一个个tick按顺序执行,每个tick都是一组function。process.nextTick就是把一个function加入的下一个tick里面,这样就可以让它不卡在这一个tick。