Java の Thread.interrupt() が公開されました
java.lang.Thread.interrupt() メソッドは、スレッド割り込みの管理において重要な役割を果たしますジャワでは。呼び出されると、ターゲット スレッドが割り込みステータスをチェックする必要があることを示すフラグを設定します。
割り込みの仕組み
Java では割り込みはプリエンプティブではありません。代わりに、ターゲット スレッドはその中断ステータスをアクティブにポーリングする必要があります。これを行うには、Thread.interrupted() を使用します。これは、現在のスレッドのステータスを返し、割り込みフラグをクリアします。通常、割り込まれたスレッドは、InterruptedException をスローするなどして、割り込みを適切に処理します。
キーポイント
事前定義された割り込み処理
Object.wait()、Thread.sleep()、Thread.join() などの特定の API メソッドjava.util.concurrent 構造体と Java NIO には、組み込みの割り込み処理があります。これらは割り込みフラグを消費し、適切な例外 (通常は InterruptedException) をスローします。
非プリエンプティブの性質
Java の割り込みは非プリエンプティブなメカニズムであることに注意することが重要です。 。スレッドは割り込みを処理するかどうかを選択できます。この穏やかなアプローチにより、必要に応じてスレッドをきれいに終了できます。対照的に、Thread.stop() のようなメソッドはスレッドを強制的に終了するため、予測不可能または問題のある結果につながる可能性があります。
以上がJava の Thread.interrupt() はどのように機能し、プリエンプティブではないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。