public class AllState {
public static void main(String[] args) throws InterruptedException {
Thread t = new Thread(()->{
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("....");
});
//观察状态
Thread.State state = t.getState();
System.out.println(state); // NEW 线程新生状态(未启动)
t.start();
state = t.getState();
System.out.println(state); // RUNNABLE 线程运行状态(已启动)
while(state != Thread.State.TERMINATED){
Thread.sleep(200);
state = t.getState();
System.out.println(state); //TIMED_WAITING 线程阻塞状态(sleep中)
}
while(true){
int num = Thread.activeCount();//计算正在运行的线程数
System.out.println(num);
if(num == 2){
break;
}
}
state = t.getState();
System.out.println(state); //TERMINATED 线程终止状态(死亡)
}
}
运行结果
NEW
RUNNABLE
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
....
RUNNABLE
TERMINATED
2
TERMINATED