线程状态

线程状态

new——>就绪状态——>阻塞状态——>运行状态——>dead

  1. 线程一旦创建就进入到新生状态

  2. 当调用start()方法,线程立即进入就绪状态,但不意味着立即调度执行

  1. 当调用sleep,wait或同步锁定时,线程进入阻塞状态,就是代码不往下执行,阻塞事件解除后,重新进入就绪状态,等待cpu调度执行。

  2. 进入运行状态,线程才真正执行线程的代码块

  3. 线程终端或者结束,一旦进入死亡状态,就不能再次启动。

     

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);
       
      }
  }
//死亡以后的线程就不能再启动了
}

 

posted @ 2020-12-21 23:39  QIDream  阅读(79)  评论(0)    收藏  举报