我有一个 python 进程池,如果任何一个进程发生异常,我想退出池的执行
我已加入池中的所有进程,因此加入等待每个进程完成。如果我在目标函数中提出 sys.exit(1) ,系统会无限等待,因为连接仍在等待进程完成。
如何在代码中使用 join 时退出执行
from multiprocessing import Pool
import time
import sys
def printer(ip):
try:
for _ in xrange(5):
print ip+str(_)
time.sleep(1.0)
except Exception as e:
print e
sys.exit(2)
def test():
pool = Pool(processes=2)
for i in ["hello",5]:
result = pool.apply_async(printer,(i,))
pool.close()
pool.join()
print "good bye"
test()