python3 使用 multiprocessing.Pool时,子进程未启动
天蓬老师
天蓬老师 2017-04-17 16:58:10
0
2
508
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(2)
刘奇

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

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

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


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

リーリー

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

リーリー

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

いいねを押す +0
刘奇

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

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート