Appearance
线程的生命周期
- 新建状态 (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)
- 处于运行状态的线程对象可以被终止从而进入 终止状态 。