【发布时间】:2020-05-05 14:49:40
【问题描述】:
下面是一个简单的例子,它因为子进程退出而没有返回任何东西而父进程一直等待而冻结。如果需要的时间太长,有没有办法让进程超时,让其余的继续?我是 python 多处理的初学者,我发现文档不是很有启发性。
import multiprocessing as mp
import time
def foo(x):
if x == 3:
sys.exit()
#some heavy computation here
return result
if __name__ == '__main__':
pool = mp.Pool(mp.cpu_count)
results = pool.map(foo, [1, 2, 3])
【问题讨论】:
-
如果你不关心结果,为什么要先运行计算?
-
这只是一个例子。在大多数情况下,我不会事先知道哪个进程会停止。
标签: python parallel-processing multiprocessing