2

スレッドを正常にシャットダウンしたい。インターネットで多くのコードを見て、ここで質問があります。シャットダウンには2つのアプローチがあると思います。

  1. ブールフラグを使用します。変更にフラグを付けると、実行メソッドでコードを中断できます。
  2. 割り込みメソッドの使用。

ブール値フラグを使用してスレッドを適切にシャットダウンすることがなぜ避けられるのかという私の質問は、サンプル プログラムを実行したところ、うまくいきました。

4

1 に答える 1

5

booleanただし、フラグに問題はありません。

  • 同期/可視性について覚えておく必要があります(少なくともvolatileフラグを立てます)

  • フラグが既に実装されているのに、なぜ追加のフラグを追加するのですか ( interrupted)?

  • 他のライブラリ/コンテナーがスレッドを中断しようとする可能性があるため (結局、彼らはあなたのフラグを知らないのです!)、サポートInterruptedExceptionおよび/またはisInterrupted()フラグを立てる必要があります。

  • スレッドを中断すると、I/O 呼び出しとThread.sleep(). カスタムフラグはできません

于 2012-04-07T17:56:44.400 に答える