【发布时间】:2018-10-25 20:18:30
【问题描述】:
我试图使用多处理模块设置并行作业代码。我想在 10 秒内终止所有子作业。我在进程连接函数中使用超时参数制作了以下代码。但是,我发现所有作业的终止时间取决于超时值和作业数量。如何计算准确的时间?
import time
from multiprocessing import Manager, Process
def f(x, dic):
time.sleep(60)
print "Time: ", x
dic[x] = "Done"
mng = Manager()
dic = mng.dict()
jobs = [Process(target=f, args=(i, dic)) for i in range(50)]
for job in jobs:
job.start()
for job in jobs:
job.join(timeout=10)
for job in jobs:
job.terminate()
for job in jobs:
job.join()
print dic.keys()
【问题讨论】:
标签: python multithreading timeout