【发布时间】:2019-09-06 16:17:54
【问题描述】:
我正在循环中运行相同的异步函数,而无需在具有 2 个 CPU 的系统中等待该函数。当我从函数内部登录到进程 id 时,它们都具有相同的进程 id,
Node 如何处理这种并行执行?两个 CPU 都在正常使用吗?我是否需要为循环中的每个函数手动 fork 进程?
function next(){
console.log('main started', process.$
const arr=[];
for(let i=0; i<10000000; i++)
arr.push(1);
arr.sort(function(a, b){return a<b});
console.log('main ended')
}
function main(){
next();
next()
next();
next();
next();
next();
console.log('-----------------------------$
}
main()
HTOP Screenshot
【问题讨论】:
-
向我们展示您在循环中的实际代码以及异步操作是什么,我们可以更具体地回答。 node.js 将您的 Javascript 作为单线程运行,但将线程用于一些异步操作(文件 I/O)并使用本机异步支持来支持其他类型的操作(网络),并使用进程来处理诸如
spawn()和exec()之类的事情。向我们展示您实际操作的代码,以便我们解释。 -
请不要只是发布和消失。这不是stackoverflow的工作方式。当人们与您互动以提供帮助时,如果您在合理的时间内与您互动,您将获得更好的帮助。
标签: javascript node.js asynchronous process