在線程中斷作為Stop() 的替代方法
Java 中通常不鼓勵使用「stop()」方法,因為它可能會導致導致意想不到的副作用。終止執行緒的另一種方法是透過中斷。
執行緒中斷
中斷執行緒向其發出訊號,表示它應該正常停止其執行。若要中斷線程,請呼叫其“interrupt()”方法。如果線程表現良好並且正確處理中斷,它將在退出之前嘗試完成當前任務。
範例實作
考慮以下程式碼:
Thread thread = new Thread(new Runnable() { @Override public void run() { while (!Thread.currentThread().isInterrupted()) { try { Thread.sleep(5000); System.out.println("Hello World!"); } catch (InterruptedException e) { Thread.currentThread().interrupt(); System.out.println("Thread interrupted"); } } } });
在此程式碼中,執行緒在循環內檢查其中斷狀態。當中斷時,它會拋出“InterruptedException”,該例外會被處理並再次設定執行緒的中斷狀態。然後執行緒退出循環並終止。
注意事項
與「Thread#isAlive() 和Thread#interrupted()
以上是執行緒中斷是 Java 中已棄用的「stop()」方法的更好替代方法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!