0

我有主人和工人并行计算一些东西。

如何总结他们的结果?

每个工人完成他的工作后,他自杀了,'res'变量没有价值,所以不可能将它累加到任何变量中。

if (cluster.isMaster) {
    for (var i = 0; i < numCPUs; i++) {
        const worker = cluster.fork();
        worker.send({ mydata: array[i] });  
    }

} else {
    process.on('message', (msg) => {
        res = AnyFunction(msg.mydata, dx, f);
        console.log('Result of ' + pid + ' worker: ' + res);
        process.exit();
    });
}

有什么办法吗?

4

1 回答 1

0

尝试以下操作:

if (cluster.isMaster) {
    for (var i = 0; i < numCPUs; i++) {
        const worker = cluster.fork();
        worker.send({ mydata: array[i] });  
        let sum = 0;
        worker.on('message', res => sum+=res);
    }

} else {
    process.on('message', (msg) => {
        res = AnyFunction(msg.mydata, dx, f);
        console.log('Result of ' + pid + ' worker: ' + res);
        process.send(res);
        process.exit();
    });
}
于 2017-10-20T08:14:12.190 回答