python脚本需要通过fork()生成多个子进程。所有这些子进程应该同时运行,父进程应该等待所有这些进程完成。有能力为“慢”的孩子设置一些超时会很好。在收集所有孩子后,父进程继续处理剩余的脚本。
解决这个问题的最佳方法是什么?谢谢。
发布于 2019-05-22 13:26:53
简单的例子:
import os
chidren = []
for job in jobs:
child = os.fork()
if child:
children.append(child)
else:
pass # really should exec the job
for child in children:
os.waitpid(child, 0)
找出一个慢孩子是一个更多的工作; 您可以使用wait
而不是waitpid
从子列表中剔除返回的值,而不是依次等待每个值(如此处所示)。如果alarm
使用SIGALRM
处理程序设置,则可以在指定的延迟后终止等待。这是所有标准的UNIX内容,而不是特定于Python的内容......
发布于 2019-05-22 14:27:02
你看过化工厂模块?
https://stackoverflow.com/questions/-100001192
复制相似问题