スレッドを正常にシャットダウンしたい。インターネットで多くのコードを見て、ここで質問があります。シャットダウンには2つのアプローチがあると思います。
- ブールフラグを使用します。変更にフラグを付けると、実行メソッドでコードを中断できます。
- 割り込みメソッドの使用。
ブール値フラグを使用してスレッドを適切にシャットダウンすることがなぜ避けられるのかという私の質問は、サンプル プログラムを実行したところ、うまくいきました。
スレッドを正常にシャットダウンしたい。インターネットで多くのコードを見て、ここで質問があります。シャットダウンには2つのアプローチがあると思います。
ブール値フラグを使用してスレッドを適切にシャットダウンすることがなぜ避けられるのかという私の質問は、サンプル プログラムを実行したところ、うまくいきました。
boolean
ただし、フラグに問題はありません。
同期/可視性について覚えておく必要があります(少なくともvolatile
フラグを立てます)
フラグが既に実装されているのに、なぜ追加のフラグを追加するのですか ( interrupted
)?
他のライブラリ/コンテナーがスレッドを中断しようとする可能性があるため (結局、彼らはあなたのフラグを知らないのです!)、サポートInterruptedException
および/またはisInterrupted()
フラグを立てる必要があります。
スレッドを中断すると、I/O 呼び出しとThread.sleep()
. カスタムフラグはできません