问题大意:守护进程不允许有子进程
问题产生的场景:我的一个后台进程调用了multiprocessing导致的
# 原写法
from multiprocessing import Pool
pool = Pool(processes=20)
for n in range(100):
pool.apply_async(func=func_name, args=(n))
pool.close()
pool.join()
报错: daemonic processes are not allowed to have children
# 新写法
from billiard.pool import Pool
pool = Pool(processes=20)
for n in range(100):
pool.apply_async(func=func_name, args=(n))
pool.close()
pool.join()
按以上调整即可。
文章讨论了在使用Python的multiprocessing时遇到的守护进程不允许有子进程的问题,提供了将Pool实现从multiprocessing切换到billiard.pool以解决此问题的方法。
434

被折叠的 条评论
为什么被折叠?



