Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点中的并行执行_Node.js_Asynchronous_Parallel Processing - Fatal编程技术网

Node.js 节点中的并行执行

Node.js 节点中的并行执行,node.js,asynchronous,parallel-processing,Node.js,Asynchronous,Parallel Processing,我有下面的代码来检查数组中的每个用户。如果找到,开关箱将相应工作 var users = ["A","B"]; function searchUser() { for (var j = 0; j < users.length; j++) { execute(users[j]); } } function execute() { switch (selectUser) { case "A": {

我有下面的代码来检查数组中的每个用户。如果找到,开关箱将相应工作

var users = ["A","B"];
function searchUser() {
for (var j = 0; j < users.length; j++) {
        execute(users[j]);
    }
}

function execute() {
switch (selectUser) {
            case "A":
            {
                return new A();
                break;
            }
            case "B":
            {
                return new B();
                break;
            }
            ............
            }
}
var用户=[“A”,“B”];
函数searchUser(){
对于(var j=0;j

我怎样才能使它并行运行。现在我得到A()和B()的输出。但我希望它发生,反之亦然

此代码看起来是CPU密集型代码,可能没有涉及IO。该节点是单线程模型,因此无法在单个核心上进行并行处理(对于多个核心,您需要启动多个节点进程)。在单核上,只有当涉及IO时,吞吐量才会增加。如果您当前的代码没有涉及IO,您可能什么也得不到。

尽管您无法使它们真正并行运行,但您可以使用异步模块使其更加异步:。

如果您想为
用户
数组的每个元素调用
执行
,请尝试类似async.parallel(users.map(function)的方法(user){return function(callback){execute(user)};});您还需要使用npm安装async,并调用
require('async')
-有关详细信息,请参阅我发送的链接中的文档。var async=require('async');var users=[“A”,“B”];函数执行(selectUser){switch(selectUser){case“A”:{console.log(“Helloo”);break;}case“B”:{console.log(“Hiii”);break;}}}}}异步.parallel(users.map(函数(用户){返回函数(回调){execute(用户)};}),但我得到的结果是“Helloo”,“Hiii”