ruby 等待所有分叉的子进程完成

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 等待所有分叉的子进程完成相关的知识,希望对你有一定的参考价值。

pids = []
(1..(ENV['CPUCORES'] || 3)).each do
  pids << fork do

    # do your stuff

  end
end

# hold your breath until all children finish
until pids.all? { |p|
  !system("ps --no-headers -p #{p} > /dev/null 2>&1") ||
      system("ps --no-headers -p #{p} | grep defunct> /dev/null 2>&1")
}
  sleep 1
end

以上是关于ruby 等待所有分叉的子进程完成的主要内容,如果未能解决你的问题,请参考以下文章