Java線程的狀態可以通過Thread類提供的getState()方法來判斷。getState()方法返回一個枚舉值,表示線程的狀態,常用的枚舉值有:
1. NEW:線程剛創建,還未啟動;
2. RUNNABLE:線程正在執行;
3. BLOCKED:線程因為等待鎖資源而被阻塞;
4. WAITING:線程正在等待另一個線程執行特定的操作;
5. TIMED_WAITING:線程正在等待另一個線程執行特定的操作,但有等待時間限制;
6. TERMINATED:線程執行完畢或者被中斷。
示例代碼如下:
Thread.State state = thread.getState(); if(state == Thread.State.NEW) {????System.out.println(“線程狀態:NEW”); }?else?if(state?==?Thread.State.RUNNABLE)?{
????System.out.println(“線程狀態:RUNNABLE”); }?else?if(state?==?Thread.State.BLOCKED)?{
????System.out.println(“線程狀態:BLOCKED”); }?else?if(state?==?Thread.State.WAITING)?{
????System.out.println(“線程狀態:WAITING”); }?else?if(state?==?Thread.State.TIMED_WAITING)?{
????System.out.println(“線程狀態:TIMED_WAITING”); }?else?if(state?==?Thread.State.TERMINATED)?{
????System.out.println(“線程狀態:TERMINATED”); }
需要注意的是,getState()方法只能獲取當前線程的狀態,無法獲取其他線程的狀態。