worker_thread:node.js

https://github.com/yosgspec/bench-langs
こいつで書いたclusterのやつを移植した奴。

https://github.com/yosgspec/bench-langs
こいつで書いたclusterのやつを移植した奴。

  • タグ:
  • タグはありません
"use strict";
const {Worker,isMainThread,workerData,parentPort,threadId}=require("worker_threads");
const cores=4;
var maxsum=5000000000;
if(!isMainThread){
maxsum=workerData.maxsum;
var esum=0;
for(var i=0;i<maxsum;i++){
esum++;
}
parentPort.postMessage(esum);
process.exit();
}
console.time();
maxsum/=cores;
var sum=0;
(async function(){
const myWorkers=Array(cores).fill().map(n=>new Promise(resolve=>{
new Worker(__filename,{workerData:{maxsum: maxsum}})
.once("message",esum=>{
sum=sum+esum;
return resolve();
});
}));
await Promise.all(myWorkers);
console.log(sum);
console.timeEnd();
})();
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX