等待并仅捕获第一级子进程

时间:2016-02-15 15:55:35

标签: ruby concurrency process ruby-2.2

Ruby提供了Process.waitSignal.trap等工具来同步分叉进程。但是,如何确保只注册一级子进程?例如。如果您的主进程启动进程 A 并且那个星星另一个子进程 B 。如果我在主要流程中使用wait / trap,我如何指定对 A 这样的直接子流程的兴趣,而不是像 B 那样的子流程EM>

例如:

Signal.trap("CLD")  { counter += 1 }    
Process.wait if counter <= 0
counter -= 1
fork { … }

我使用这种技术来限制衍生子进程的数量。但是如果子进程产生更多子进程,这会中断。

0 个答案:

没有答案