多线程运行状态的代码
import java.lang.Thread.State;
/*
* 观察线程的状态
*/
public class AllState {
public static void main(String[] args) {
Thread t=new Thread(()->{
for(int i=0;i<5;i++) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("你好");
});
//观察线程的状态
State state=t.getState();
// System.out.println(state);//处于NEW的状态新生状态
t.start(); //处于Runnable,处于就绪和运行状态,因为运行状态是由CPU控制的,不是我们控制的
// state=t.getState();
// System.out.println(state);
// while(state!=Thread.State.TERMINATED) {
// try {
// Thread.sleep(200);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// state=t.getState();
// System.out.println(state);
// }
while(true) {
int num=Thread.activeCount(); //活动的线程数
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(num);
if(num==1) {
break;
}
state=t.getState();
System.out.println(state);
}
}
}