Thread.State
線程狀態。線程可以處於以下狀態之一:
new:尚未啟動的線程處於此狀態
runnable:在java虛擬機中執行的線程處於此狀態
blocked:被阻塞等待監視器鎖定的線程處於此狀態
waiting:正在等待另一個線程執行特定動作的線程處於此狀態
timed_waiting:正在等待另一個線程執行動作達到指定等待時間的線程處於此狀態
terminated:已退出的線程處於此狀態
package com.lei;
//觀測測試線程的狀態
public class TestState {
public static void main(String[] args) {
Thread thread = new Thread(()->{
for (int i =0;i<5;i++){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("///////");
});
//觀測狀態
Thread.State state = thread.getState();
System.out.println(state); //New
//觀察啟動后
thread.start();//啟動線程
state = thread.getState();
System.out.println(state); //run
while(state != Thread.State.TERMINATED){ //只要線程不終止,就一直輸出狀態
try {
Thread.sleep(100);
state = thread.getState(); //更新線程狀態
System.out.println(state); //輸出狀態
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
NEW
RUNNABLE
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
///////
TERMINATED