検索

ホームページ  >  に質問  >  本文

python3 使用 multiprocessing.Pool时,子进程未启动

天蓬老师天蓬老师2767日前515

全員に返信(2)返信します

  • 怪我咯

    怪我咯2017-04-17 17:00:10

    A コード p.close() の後に p.join() を追加すれば同等です。

    または B コード p_fi.start() の前に p_fi.daemon = p_se.daemon = p_th.daemon = True を追加することも同等です (この場合、B コードも正常に実行できません)。

    要するに、コード A はサブプロセスの完了を待たずにメインプロセスを終了するのに対し、コード B はサブプロセスの完了を待ってからメインプロセスを終了するという違いです。


    完全なコードを更新した後:

    リーリー

    を次のように変更する必要があります:

    リーリー

    そうしないと、プロセス間でキューを共有できません。

    返事
    0
  • 怪我咯

    怪我咯2017-04-17 17:00:10

    上記の人は正しいです。close 後、実行が終了するまで待機する必要があります。

    プロジェクトのコードを読んで初めて知りました https://github.com/shazow/workerpool

    返事
    0
  • キャンセル返事