在Java中,可以使用Thread類的getState()方法來獲取線程的狀態。getState()方法返回一個Thread.State枚舉值,表示線程的狀態。
下面是一個示例代碼,演示了如何獲取線程的狀態:
public class Main {????public?static?void?main(String[]?args)?{
????????Thread?thread?=?new?Thread(()?->?{
????????????try?{
????????????????Thread.sleep(2000);
????????????}?catch?(InterruptedException?e)?{
????????????????e.printStackTrace();
????????????}
????????});
????????thread.start();
????????//?獲取線程的狀態
????????Thread.State?state?=?thread.getState();
????????System.out.println(“線程狀態:”?+?state);
????????try?{
????????????//?等待線程執行完畢
????????????thread.join();
????????}?catch?(InterruptedException?e)?{
????????????e.printStackTrace();
????????}
????????//?再次獲取線程的狀態
????????state?=?thread.getState();
????????System.out.println(“線程狀態:”?+?state);
????} }
上述代碼創建了一個新的線程,并啟動它。然后,通過調用getState()方法獲取線程的狀態,并將其打印輸出。接著,使用join()方法等待線程執行完畢,再次調用getState()方法獲取線程的狀態,并將其打印輸出。
運行上述代碼,可以看到輸出結果如下:
線程狀態:RUNNABLE 線程狀態:TERMINATED
可以看到,線程的初始狀態是RUNNABLE,表示線程正在運行。當線程執行完畢后,狀態變為TERMINATED,表示線程已經終止。
除了上述兩個狀態,Thread.State枚舉還包括其他狀態,如NEW(新建狀態)、BLOCKED(阻塞狀態)、WAITING(等待狀態)等。通過getState()方法可以獲取線程的當前狀態并進行相應的處理。