十七、观测线程状态

 线程可以处于以下状态之一:
  • NEW
    尚未启动的线程处于此状态。
  • RUNNABLE
    在Java虚拟机中执行的线程处于此状态。
  • BLOCKED
    被阻塞等待监视器锁定的线程处于此状态。
  • WAITING
    正在等待另一个线程执行特定动作的线程处于此状态。
  • TIMED_WAITING
    正在等待另一个线程执行动作达到指定等待时间的线程处于此状态。
  • TERMINATED
    已退出的线程处于此状态。

 

public class ThreadStates{

    public static void main(String[] args) throws InterruptedException {

        Thread thread=new Thread(()->{
            try {
                Thread.sleep(1);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.out.println("run");
        });

        System.out.println(thread.getState()); //NEW

        thread.start();
        System.out.println(thread.getState()); //RUNNABLE

        while (thread.getState()!=Thread.State.TERMINATED){
            System.out.println(thread.getState());
        }
        System.out.println(thread.getState());
    }
}

结果:

 

posted @ 2022-05-14 21:47  Epiphany8Z  阅读(16)  评论(0编辑  收藏  举报