线程的生命周期
线程的生命周期
CAMELLIA!!! note 目录
线程的生命周期
Java 线程的生命周期描述了一个线程从创建到终止的整个过程。
一、线程的生命周期七个状态
新建(New):
- 当新创建一个线程对象时,线程处于新建状态。
- 此时线程还没有开始运行,尚未分配 CPU 和其他资源。
就绪(Runnable):
- 当调用线程的
start()
方法后,线程进入就绪状态。 - 处于就绪状态的线程已经分配了所有必要的资源,等待系统调度执行。
- 当调用线程的
运行(Running):
- 当线程获取了 CPU 资源并开始执行时,线程进入运行状态。
- 此时线程正在执行任务中,直到任务执行完毕或者发生阻塞。
阻塞(Blocked):
- 在特定情况下,线程会进入阻塞状态,暂时停止执行。
- 常见的阻塞情况包括等待某个资源、等待输入/输出完成、等待获取锁等。
等待(Waiting):
- 线程处于等待状态,等待其他线程的通知或者特定条件的满足。
- 进入等待状态的线程可以通过
wait()
、join()
或者sleep()
等方法触发。
超时等待(Timed Waiting):
- 线程等待一段指定的时间后自动恢复到就绪状态。
- 通过
sleep()
、join(timeout)
、wait(timeout)
等方法可以使线程进入超时等待状态。
终止(Terminated):
- 线程执行完任务后或者因异常退出执行,进入终止状态。
- 终止状态的线程不再运行,生命周期结束,无法再启动或者执行其他操作。