java.lang.Thread.interrupt() の機能を理解する
呼び出されると、java.lang.Thread.interrupt()メソッドは、対象のスレッドの中断ステータスまたはフラグを変更します。その後、この対象スレッド内で動作するコードは、割り込みステータスを定期的に検査し、それに応じて応答できます。
特に、Object.wait() などの特定のブロック メソッドは、割り込みステータスを即座に取得して使い果たし、適切な例外 (多くの場合、InterruptedException) をトリガーします。 ).
さらに、Java の割り込みにはプリエンプティブな動作がないことに注意することが重要です。これは、割り込みの開始側と割り込まれたスレッドの両方が割り込みの処理に積極的に参加する必要があることを意味します。したがって、ターゲット スレッドが割り込みステータスのポーリングを怠った場合、割り込みは事実上破棄されます。
割り込みステータスを確認するには、Thread.interrupted() 関数を使用できます。このアプローチでは、現在のスレッドの割り込みステータスを同時に取得し、その割り込みフラグを消去します。その後、スレッドは通常、InterruptedException をスローするか、その他の必要なアクションを実行することで反応します。
特定の API メソッドには割り込み処理が組み込まれていることにも注目してください。例:
スレッドの中断は、スレッドを正常に終了するよう促すために使用される巧妙なテクニックです。スレッドに対する突然の攻撃のように動作する Thread.stop() とは対照的に、中断はスレッドがきれいに終了する機会を提供します。
以上がJava の「Thread.interrupt()」はどのように機能し、スレッドは割り込みにどのように応答するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。