欢迎选择我的课程,让我们一起见证您的进步~~
A コード p.close() の後に p.join() を追加すれば同等です。
p.close()
p.join()
または B コード p_fi.start() の前に p_fi.daemon = p_se.daemon = p_th.daemon = True を追加することも同等です (この場合、B コードも正常に実行できません)。
p_fi.start()
p_fi.daemon = p_se.daemon = p_th.daemon = True
要するに、コード A はサブプロセスの完了を待たずにメインプロセスを終了するのに対し、コード B はサブプロセスの完了を待ってからメインプロセスを終了するという違いです。
完全なコードを更新した後:
を次のように変更する必要があります:
そうしないと、プロセス間でキューを共有できません。
上記の人は正しいです。close 後、実行が終了するまで待機する必要があります。
プロジェクトのコードを読んで初めて知りました https://github.com/shazow/workerpool
A コード
p.close()
の後にp.join()
を追加すれば同等です。または B コード
p_fi.start()
の前にp_fi.daemon = p_se.daemon = p_th.daemon = True
を追加することも同等です (この場合、B コードも正常に実行できません)。要するに、コード A はサブプロセスの完了を待たずにメインプロセスを終了するのに対し、コード B はサブプロセスの完了を待ってからメインプロセスを終了するという違いです。
完全なコードを更新した後:
リーリーを次のように変更する必要があります:
リーリーそうしないと、プロセス間でキューを共有できません。
上記の人は正しいです。close 後、実行が終了するまで待機する必要があります。
プロジェクトのコードを読んで初めて知りました https://github.com/shazow/workerpool