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。