如何解决如何在Node.js中使用工作线程?
我有下面的代码,如果传递的数组长度太高,并且处理每个数组元素要花费一秒钟的时间,那么如何在以下条件下使用工作线程?
function processData(arr){
var result = [];
for(var i = 0; i < arr.length; i++){
result.push(process(arr[i]));
}
return result;
}
function process() {
// some code here takes 1 second to execute
}
processData(arr);
解决方法
您可以使用workerpool
npm软件包在工作线程中完成长时间的处理工作,诸如此类
const workerpool = require('workerpool');
const pool = workerpool.pool();
const arr = [...] // Large Data set which is to be processed
new Promise((resolve,reject) => {
pool.exec(
arr => {
var result = [];
for(var i = 0; i < arr.length; i++){
/*
Do the long processing on data
*/
const processedData = a[i];
result.push(processedData);
}
return result;
},[arr]
)
.then(result => resolve(result))
.catch(err => reject(err));
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。