7.简述线程生命周期的各个阶段及其特点(要求画线程生命周期状态图)
时间: 2023-07-26 22:09:44 浏览: 85
线程的生命周期通常包括五个阶段:
1. 新建(New):当线程对象被创建后,它处于新建状态。
2. 就绪(Runnable):当调用 start() 方法后,线程进入就绪状态。就绪状态的线程已经获得了除了 CPU 资源以外的所有资源,只等待获取 CPU 资源后就可以立即执行。
3. 运行(Running):当线程获得 CPU 资源后,开始执行 run() 方法,线程进入运行状态。
4. 阻塞(Blocked):当线程因为某些原因暂停执行时,进入阻塞状态。例如,线程等待某个资源的时候,如果该资源还没有准备好,线程就会进入阻塞状态。当资源就绪后,线程重新进入就绪状态,等待获取 CPU 时间片后进入运行状态。
5. 死亡(Dead):当线程完成了它的工作或者因为异常退出了 run() 方法时,线程进入死亡状态。
线程状态图如下:
```
┌─────────────┐
│ New │
└─────────────┘
│
│ start()
▼
┌─────────────┐
│ Runnable │
└─────────────┘
│
│ 获取 CPU 时间片
▼
┌─────────────┐
│ Running │
└─────────────┘
│
│ 阻塞或等待
▼
┌─────────────┐
│ Blocked │
└─────────────┘
│
│ 获得等待的资源
▼
┌─────────────┐
│ Runnable │
└─────────────┘
│
│ run() 方法执行完毕
▼
┌─────────────┐
│ Dead │
└─────────────┘
```
阅读全文