该部分深入学习后在进行更新
五种状态
- 初始状态:创建线程对象时的状态
- 可运行状态(就绪状态):调用start()方法后进入就绪状态,也就是准备好被cpu调度执行
- 运行状态:线程获取到cpu的时间片,执行run()方法的逻辑
- 阻塞状态: 线程被阻塞,放弃cpu的时间片,等待解除阻塞重新回到就绪状态争抢时间片
-
六种状态
Thread类中的内部枚举State
public enum State {
NEW,
RUNNABLE,
BLOCKED,
WAITING,
TIMED_WAITING,
TERMINATED;
} NEW 线程对象被创建
- Runnable 线程调用了start()方法后进入该状态,该状态包含了三种情况
- 就绪状态 :等待cpu分配时间片
- 运行状态:进入Runnable方法执行任务
- 阻塞状态:BIO 执行阻塞式io流时的状态
- Blocked 没获取到锁时的阻塞状态(同步锁章节会细说)
- WAITING 调用wait()、join()等方法后的状态
- TIMED_WAITING 调用 sleep(time)、wait(time)、join(time)等方法后的状态
- TERMINATED 线程执行完成或抛出异常后的状态
六种线程状态和方法的对应关系