gpt4 book ai didi

javascript - 是否可以 fork 子进程并等待它们在 Node/JS 中返回?

转载 作者:搜寻专家 更新时间:2023-10-31 23:14:07 25 4
gpt4 key购买 nike

我必须多次进行某种计算。我想将它分成多个核心,所以我想使用 child_process.fork(),然后将工作的一大块传递给每个 child 。

这工作正常,除了我的主要进程(执行 fork() 的那个)在 fork()ing 之后继续运行并且在 children 完成他们的工作时已经终止。

我真正想做的是等 children 完成后再继续执行。

我找不到在 Node.js 中执行此操作的任何好方法。有什么建议吗?

最佳答案

如果您通过 .fork() 生成一个新的 V8 进程,它会返回一个实现通信层的新 child 对象。例如

var cp    = require( 'child_process' ),
proc = cp.fork( '/myfile.js' );

proc.on('message', function( msg ) {
// continue whatever you want here
});

/myfile.js 中,您只需在完成工作后发送一个事件

process.send({ custom: 'message' });

请注意,此方法确实会生成一个新的 V8 实例,它会占用大量内存。所以你应该非常周到地使用它。也许你甚至不需要那样做,也许有一个更“像 Node ”的解决方案(使用 process.nextTick 来计算重数据)。

关于javascript - 是否可以 fork 子进程并等待它们在 Node/JS 中返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12942568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com