Python doc を見ているとmultiprocessing.terminate()
、次のことがわかりました。
Terminate() 関連付けられたプロセスがパイプまたはキューを使用しているときにこのメソッドを使用すると、パイプまたはキューが破損しやすくなり、他のプロセスで使用できなくなる可能性があります。同様に、プロセスがロックやセマフォなどを取得している場合、そのプロセスを終了すると、他のプロセスがデッドロックする可能性があります。
基本的に、キューやパイプなどを使用しているプロセスを終了すると、構造が破損するリスクがあります。
これについていくつか質問がありますが、
- 破損が発生した場合、PIPE、キューなどからデータを取得しようとする別のプロセスはどうなりますか?
- プロセスが破損しているかどうかを確認するにはどうすればよいですか?
- 別のプロセスが終了したことがわかっている場合、デッドロックを何らかの方法で解決できますか?
常にterminateを使用しないようにする必要があることは理解していますが、これは、これ以外に何もできない状況のためのものです