gpt4 book ai didi

python - 如何检查子流程是否已完成?

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:03 25 4
gpt4 key购买 nike

我正在开始一个过程:

for i in range(1, processes + 1):
hup = MyURLParser() //A class I made
p = Process(target = hup.run)
p.start()

之后,为了不让主线程立即退出,我做了:

 while (True):
print("Main sleeping...")
sleep(20)

除了这样做,我如何检查每个子进程是否仍在主线程中运行?然后我可以在正确的时间跳出循环并做其他事情,而不是无限循环....

最佳答案

将所有进程添加到列表中,然后 join()他们每个人依次:

processes = []
for i in range(1, processes + 1):
hup = MyURLParser() //A class I made
p = Process(target = hup.run)
p.start()
processes.append(p)

for p in processes:
p.join()

join() 调用会阻塞,直到进程完成。调用它们的顺序无关紧要;在已经完成的进程上调用 join() 将立即返回。

您可能还想查看 multiprocessing module 中的其他功能;特别是 Pool 类可能会帮助您简化此代码。

关于python - 如何检查子流程是否已完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48421426/

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