12.观测线程状态


线程状态观测

Thread.State

线程状态。线程可以处于以下状态之一:

new:尚未启动的线程处于此状态

runnable:在java虚拟机中执行的线程处于此状态

blocked:被阻塞等待监视器锁定的线程处于此状态

waiting:正在等待另一个线程执行特定动作的线程处于此状态

timed_waiting:正在等待另一个线程执行动作达到指定等待时间的线程处于此状态

terminated:已退出的线程处于此状态

一个线程可以在给定时间点处于一个状态。这些状态是不反映任何操作系统线程状态的虚拟机状态

package com.lei;

//观测测试线程的状态
public class TestState {
  public static void main(String[] args) {
      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); //New

      //观察启动后
      thread.start();//启动线程
      state = thread.getState();
      System.out.println(state); //run

      while(state != Thread.State.TERMINATED){ //只要线程不终止,就一直输出状态
          try {
              Thread.sleep(100);
              state = thread.getState(); //更新线程状态
              System.out.println(state); //输出状态
          } catch (InterruptedException e) {
              e.printStackTrace();
          }

      }


  }

}


NEW
RUNNABLE
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
///////
TERMINATED

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM