NEW—新生状态
新创建的线程处于这个状态
RUNNABLE—就绪状态
状态再准备接受CPU调度时处于这个状态
TERMINATED—结束状态
线程结束后,处于这个状态
TIMED_WAITING—正在等待另一个线程执行动作达到指定时间的线程处于此状态
像处于休眠的线程处于这个状态
运行状态
运行的线程处于这个状态
//测试线程状态
public class ThreadState {
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(() -> {
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("///");
}
});
//得到创建线程时的:新生(创建)状态-------NEW
Thread.State state = thread.getState();
System.out.println(state);
//线程调用start方法后的:就绪状态-------RUNNABLE
thread.start();
state=thread.getState();
System.out.println(state);
//如果当前状态不处于结束状态,就一直输入当前线程的状态
while(state!=Thread.State.TERMINATED){//TERMINATED:结束状态
Thread.sleep(500);
System.out.println(state);
//TIMED_WAITING:正在等待另一个线程执行动作达到指定时间的线程处于此状态
state=thread.getState();
}
System.out.println("结束状态:"+state);
}
}