multiprocessing如何当子进程捕捉到异常,主进程和所有子进程终止

大家好,最近在使用multiprocessing处理问题,大致代码如下:

def work(i):
    #执行代码
    print('child success')
    pass
    
def throw_error(e):
    raise e
       
def main():
    pool = multiprocessing.Pool(processes=10)
    for i in range(0,5000):
        pool.apply_async(work, (i,), error_callback=throw_error)
    pool.close()
    pool.join()
    print('success')
    pass

这段代码在运行过程中,如果子进程有异常会被主进程捕捉到并抛出异常,整个过程也不会继续运行但也不会结束,需要在命令行ctl+c强制结束。我想问如果让当主进程捕捉到子进程异常,全部进程直接结束,代码部分应该怎么修改?

当年话下
浏览 1844回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python