共計 1074 個字符,預計需要花費 3 分鐘才能閱讀完成。
在 Java 中,可以使用 Thread 類的 getState() 方法來獲取線程的狀態。Thread 類中定義了一個枚舉類 Thread.State,表示線程的不同狀態,常見的有:
1. NEW:初始狀態,線程被創建但還沒有調用 start() 方法。
2. RUNNABLE:運行狀態,線程正在執行中。
3. BLOCKED:阻塞狀態,線程被阻塞等待鎖的釋放。
4. WAITING:等待狀態,線程等待其他線程的通知。
5. TIMED_WAITING:超時等待狀態,線程等待一段時間后自動恢復。
6. TERMINATED:終止狀態,線程執行完畢或被意外終止。
下面是一個示例代碼,演示了如何獲取線程的狀態:java
public class ThreadStatusExample {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
try {
Thread.sleep(1000); // 讓線程休眠 1 秒鐘
} catch (InterruptedException e) {
e.printStackTrace();
}
});
System.out.println(" 線程狀態:" + thread.getState()); // 輸出 NEW
thread.start(); // 啟動線程
System.out.println(" 線程狀態:" + thread.getState()); // 輸出 RUNNABLE
try {
Thread.sleep(500); // 讓主線程休眠 0.5 秒鐘
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(" 線程狀態:" + thread.getState()); // 輸出 TIMED_WAITING
try {
thread.join(); // 等待線程執行完畢
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(" 線程狀態:" + thread.getState()); // 輸出 TERMINATED
}
}
在上面的代碼中,通過調用 Thread 的 getState() 方法,可以獲取線程的狀態,并輸出相應的結果。
丸趣 TV 網 – 提供最優質的資源集合!