ホームページ > Java > &#&チュートリアル > Java の「Thread.interrupt()」はどのように機能し、スレッドはどのように応答する必要があるのでしょうか?

Java の「Thread.interrupt()」はどのように機能し、スレッドはどのように応答する必要があるのでしょうか?

Mary-Kate Olsen
リリース: 2024-12-11 17:43:09
オリジナル
426 人が閲覧しました

How Does Java's `Thread.interrupt()` Work and How Should Threads Respond?

java.lang.Thread.interrupt() は何をし、どのように機能しますか?

java.lang.Thread.interrupt () メソッドは、ターゲット スレッドの割り込みフラグ/ステータスが設定されていることを確認します。このアクションにより、ターゲット スレッドが割り込みステータスを確認し、適切に応答するようにトリガーされます。

Java の割り込みは、両方のスレッドの協力を必要とする共同プロセスです。

  • 割り込みフラグの設定: Thread.interrupt() はターゲット スレッドに割り込みフラグを設定し、保留中のスレッドがある可能性があることを示します。割り込み。
  • フラグのポーリング: 割り込みに応答するには、ターゲット スレッドは Thread.interrupted() メソッドを使用して割り込みステータスを定期的にチェックする必要があります。このメソッドは、割り込みフラグの取得とクリアの両方を行います。
  • 割り込みへの応答: 割り込みステータスを検出すると、スレッドは、たとえば、InterruptedException をスローすることによって、それを具体的に処理する場合があります。

先制 vs.協力

他の特定のプログラミング言語とは異なり、Java の割り込みは協力的です。つまり、割り込みを正常に処理するには、両方のスレッドが連携する必要があります。ターゲット スレッドが割り込みステータスを確認しない場合、割り込みは事実上無視されます。

組み込みの割り込み処理

特定の API メソッドには組み込みの割り込み処理が付属しています。 、

  • Object.wait()、Thread.sleep()、およびThread.join()
  • ほとんどの java.util.concurrent コンストラクト
  • Java NIO (InterruptedException ではなく ClosedByInterruptException を使用)

ナッジ メカニズムとしての割り込み

スレッド中断は、スレッドが正常に終了することを要求する穏やかで丁寧な方法として機能します。スレッドを突然終了する Thread.stop() とは異なり、割り込みにより、スレッドは終了する前にクリーンアップしてタスクの実行を終了できます。

以上がJava の「Thread.interrupt()」はどのように機能し、スレッドはどのように応答する必要があるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート