Pythonのmultiprocessing.poolが正常に終了しない場合はどうすればいいですか?
multiprocessing.poolが正常に終了しない場合、いくつかの解決策があります。
- プールを終了する。
from multiprocessing import Pool
def func(x):
# 任务函数
if __name__ == "__main__":
pool = Pool()
try:
# 执行任务
pool.map(func, range(10))
finally:
# 强制终止进程池
pool.terminate()
- 「プールを閉める」
- プール.結合()
from multiprocessing import Pool
def func(x):
# 任务函数
if __name__ == "__main__":
pool = Pool()
try:
# 执行任务
pool.map(func, range(10))
finally:
# 关闭进程池
pool.close()
# 等待所有工作进程完成
pool.join()
- タスク関数がデッドループやデッドロックの可能性があるかどうかを確認してください。問題があれば修正して、プロセスが正常に終了するようにしてください。
- 他のところでコードがメインプロセスをブロックしているかどうかを確認し、正常に終了できない原因を確認してください。すべての子プロセスが終了してから、メインプロセスのコードを続行してください。
上記は一般的な解決策のいくつかですが、具体的な方法の選択は状況によって異なります。