如何在不使用已棄用的Thread.stop() 方法的情況下有效地終止執行緒
Java Thread 類別提供了stop() 方法作為終止執行緒的方法,但它已被棄用,不應使用。本文介紹了一種使用中斷方法終止執行緒的替代方法。
使用中斷來停止執行緒
而不是直接呼叫stop(),這是不安全的並且可能導致資料損壞,我們可以使用中斷向執行緒發出訊號,告知它應該正常終止。它的工作原理如下:
public class InterruptedExceptionExample { private static volatile boolean shutdown = false; public static void main(String[] args) { Thread thread = new Thread(() -> { while (!shutdown) { try { System.out.println("Running..."); Thread.sleep(5000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }); thread.start(); System.out.println("Press enter to quit"); try { System.in.read(); } catch (IOException e) { e.printStackTrace(); } shutdown = true; thread.interrupt(); } }
在此程式碼中:
使用的優點中斷:
與已棄用的stop() 相比,中斷執行緒有幾個優點:
以上是如何在不使用 Thread.stop() 的情況下安全地停止 Java 執行緒?的詳細內容。更多資訊請關注PHP中文網其他相關文章!