javascript 工作者线程,sample3.js

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 工作者线程,sample3.js相关的知识,希望对你有一定的参考价值。

const { Worker, isMainThread, parentPort, workerData } = require('worker_threads');
const request = require("request");

function startWorker(path, cb) {
	let w = new Worker(path, {workerData: null});
	w.on('message', (msg) => {
		cb(null, msg)
	})
	w.on('error', cb);
	w.on('exit', (code) => {
		if(code != 0)
	      	console.error(new Error(`Worker stopped with exit code ${code}`))
   });
	return w;
}

console.log("this is the main thread")

let myWorker = startWorker(__dirname + '/workerCode.js', (err, result) => {
	if(err) return console.error(err);
	console.log("[[Heavy computation function finished]]")
	console.log("First value is: ", result.val);
	console.log("Took: ", (result.timeDiff / 1000), " seconds");
})

const start = Date.now();
request.get('http://www.google.com', (err, resp) => {
	if(err) {
		return console.error(err);
	}
	console.log("Total bytes received: ", resp.body.length);
	//myWorker.postMessage({finished: true, timeDiff: Date.now() - start}) //you could send messages to your workers like this
}) 

以上是关于javascript 工作者线程,sample3.js的主要内容,如果未能解决你的问题,请参考以下文章

javascript 工作者线程code.js

为啥 JavaScript 不支持多线程?

如果 Javascript 是单线程的,那么像时钟这样的东西是如何工作的?

javascript 在执行异步操作时使用工作线程进行繁重计算的示例

进阶学习5:JavaScript异步编程——同步模式异步模式调用栈工作线程消息队列事件循环回调函数

Javascript中的线程安全?