线程状态
-
线程一旦创建就进入到新生状态
-
当调用start()方法,线程立即进入就绪状态,但不意味着立即调度执行
-
当调用sleep,wait或同步锁定时,线程进入阻塞状态,就是代码不往下执行,阻塞事件解除后,重新进入就绪状态,等待cpu调度执行。
-
进入运行状态,线程才真正执行线程的代码块
-
线程终端或者结束,一旦进入死亡状态,就不能再次启动。
public class TheadTest {
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("///////");
});
//观察线程刚创建出来的状态
Thread.State state = thread.getState();
System.out.println(state);
//观察线程启动后的状态
thread.start();//启动线程
state = thread.getState();
System.out.println(state);//Run
while(state!=Thread.State.TERMINATED){//只要线程不终止,就一直输出状态
Thread.sleep(100);
state = thread.getState();
System.out.println(state);
}
}
//死亡以后的线程就不能再启动了
}

浙公网安备 33010602011771号