Java 的Thread.interrupt() 揭露
java.lang.Thread.interrupt() 方法在管理執行緒中斷方面起著至關重要的角色在爪哇。呼叫時,它會設定一個標誌,指示目標執行緒應檢查其中斷狀態。
中斷如何運作
Java 中的中斷不是搶佔式的。相反,目標線程必須主動輪詢其中斷狀態。為此,它使用 Thread.interrupted(),它會傳回目前執行緒的狀態並清除中斷標誌。通常,被中斷的執行緒會適當地處理中斷,例如拋出 InterruptedException。
重點
預定義中斷處理
某些API 方法,例如Object.wait()、Thread.sleep()、Thread.join()、java .util.concurrent 結構和Java NIO 具有內建的中斷處理。它們消耗中斷標誌並拋出適當的異常(通常是 InterruptedException)。
非搶佔式
需要注意的是,Java 中的中斷是一種非搶佔式機制。線程可以選擇是否處理中斷。這種溫和的方法允許線程在需要時乾淨地退出。相反,像 Thread.stop() 這樣的方法會強制終止線程,這可能會導致不可預測或有問題的結果。
以上是Java 的 Thread.interrupt() 如何運作以及為什麼它不是搶佔式的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!