Skip to content

线程的生命周期

  • 新建状态 (New)
  • 就绪状态 (Runnable)
  • 运行状态 (Running)
  • 阻塞状态 (Blocked)
  • 等待状态 (Waiting)
  • 计时等待状态 (Timed Waiting)
  • 终止状态 (Terminated)

线程的生命周期

新建状态 (New)

  • 当线程对象对线程类进行实例化后,线程对象就处于新建状态

就绪状态 (Runnable)

  • 当调用线程对象的start()方法后,线程对象就处于就绪状态
  • 处于就绪状态的线程对象并不是立即执行,而是进入线程队列等待CPU调度。
  • 处于就绪状态的线程对象可以被CPU调度执行。
  • 处于就绪状态的线程对象可以被阻塞。

运行状态 (Running)

  • 当CPU调度到处于就绪状态的线程对象时,线程对象就处于运行状态
  • 处于运行状态的线程对象正在执行任务。
  • 处于运行状态的线程对象可以被阻塞。
  • 处于运行状态的线程对象可以被挂起。
  • 处于运行状态的线程对象可以被终止。
  • 处于运行状态的线程对象可以被让出CPU。

阻塞状态 (Blocked)

  • 处于运行状态的线程对象可以被阻塞从而进入 阻塞状态
  • 处于阻塞状态的线程对象不会被CPU调度执行。
  • 处于阻塞状态的线程对象可以被唤醒从而进入就绪状态
  • 处于阻塞状态的线程对象可以被终止。
  • 处于阻塞状态的线程对象可以被让出CPU。
  • 处于阻塞状态的线程对象可以被挂起。
  • 处于阻塞状态的线程对象可以被等待。

等待状态 (Waiting)

  • 处于运行状态的线程对象可以被等待从而进入 等待状态

计时/超时等待状态 (Timed Waiting)

  • 处于运行状态的线程对象可以被计时等待从而进入 计时等待状态
  • 处于计时等待状态的线程对象不会被CPU调度执行。
  • 处于计时等待状态的线程对象可以被唤醒从而进入就绪状态
  • 处于计时等待状态的线程对象可以被终止。
  • 处于计时等待状态的线程对象可以被让出CPU。
  • 处于计时等待状态的线程对象可以被挂起。
  • 处于计时等待状态的线程对象可以被等待。

终止状态 (Terminated)

  • 处于运行状态的线程对象可以被终止从而进入 终止状态