编写了一个进程池,有5个子进程并行运行,共运行40个批次,现在遇到的问题,如果一个子进程结束,其他的子进程也会结束,如何解决?
python代码如下:
pool = multiprocessing.Pool(processes=5) # 创建4个进程
for i in range(len(Alist_paths)):
msg = Alist_paths[i]
pool.apply_async(super, (i,msg,))
pool.close()
pool.join()
time.sleep(2)
print('wait 2 second to terminate the multiprocess')
子进程函数是super?确定是这样吗?真的要这样写吗?换个函数名试试,比如,这样写就运行得很好。
import time
import multiprocessing as mp
def dosomthing(i, msg):
print(i, msg)
time.sleep(1)
if __name__ == '__main__':
Alist_paths = '一个子进程结束,会影响到其他子进程,也跟着结束,如何解决'
pool = mp.Pool(processes=4)
for i, msg in enumerate(Alist_paths):
pool.apply_async(dosomthing, (i, msg))
pool.close()
pool.join()
print('OK')
那么你进程函数写在哪里了,怎么知道它不应该结束呢
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!