等待所有Python进程完成

3

我正在循环中启动几个Python进程进行下载,并调用以下代码:

startTimeMillis = int(round(time.time() * 1000))

for i in range(10):
        p = multiprocessing.Process(target=performCurl, args =("http://www.google.com/d", i, ))
        p.start()


endTimeMillis = int(round(time.time() * 1000))
totalTimeSeconds = (endTimeMillis - startTimeMillis)
print "The whole process took ", str(totalTimeSeconds)

我想要检查所有进程完成所需的时间,那么如何使代码的最后一部分等待所有进程完成?

1个回答

13

使用 p.join() 等待进程终止。

all_processes = [multiprocessing.Process(...) for ... in ...]
for p in all_processes:
  p.start()

for p in all_processes:
  p.join()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接