Pythonのmultiprocessing.poolが正常に終了しない場合はどうすればいいですか?

multiprocessing.poolが正常に終了しない場合、いくつかの解決策があります。

  1. プールを終了する。
from multiprocessing import Pool

def func(x):
    # 任务函数

if __name__ == "__main__":
    pool = Pool()
    try:
        # 执行任务
        pool.map(func, range(10))
    finally:
        # 强制终止进程池
        pool.terminate()
  1. 「プールを閉める」
  2. プール.結合()
from multiprocessing import Pool

def func(x):
    # 任务函数

if __name__ == "__main__":
    pool = Pool()
    try:
        # 执行任务
        pool.map(func, range(10))
    finally:
        # 关闭进程池
        pool.close()
        # 等待所有工作进程完成
        pool.join()
  1. タスク関数がデッドループやデッドロックの可能性があるかどうかを確認してください。問題があれば修正して、プロセスが正常に終了するようにしてください。
  2. 他のところでコードがメインプロセスをブロックしているかどうかを確認し、正常に終了できない原因を確認してください。すべての子プロセスが終了してから、メインプロセスのコードを続行してください。

上記は一般的な解決策のいくつかですが、具体的な方法の選択は状況によって異なります。

bannerAds