线程生命周期

SOBER小于 1 分钟

线程生命周期

JDK 中用 Thread.State 枚举表示了线程的几种状态

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

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

线程状态转换图

写程序查看线程状态

package commonThread;

public class Thread06 {
    public static void main(String[] args) throws InterruptedException {
        X x = new X();
        System.out.println(x.getName() + " 状态 " + x.getState());
        x.start();

        while (Thread.State.TERMINATED != x.getState()){
            System.out.println(x.getName() + " 状态 " + x.getState());
            Thread.sleep(500);
        }
        System.out.println(x.getName() + "状态" + x.getState());
    }
}

class X extends Thread {
    @Override
    public void run(){
       while (true){
           for (int i = 0; i <= 10; i++){
               System.out.println("hi~~~" + i);
               try {
                   Thread.sleep(1000);
               } catch (InterruptedException e) {
                   throw new RuntimeException(e);
               }
           }
           break;
       }
    }
}