线程的状态及转换关系

1.新建状态new:

线程对象被new创建后会进入新建状态

Thread thread = new Thread();
2.就绪状态Runnable:

就绪状态,即可执行状态。线程创建后,其他线程调用该对象的start()方法。线程处于就绪状态等待被CPU调度。

thread.start()
3.运行状态Running

处于就绪状态的线程获取cpu权限进行执行,线程只能通过就绪态进入运行状态。

4.阻塞状态Blocked

线程因为某种原因放弃CPU使用权,暂时停止运行。
4.1等待阻塞
通过调用线程的wait()方法,让线程暂停等待某工作的完成。
4.2同步阻塞
线程获取同步锁synchronized失败,进入阻塞状态。
4.3其他阻塞
调用线程的sleep()、join()或发出I/O请求进入阻塞状态。
等待sleep()超时,join()等待线程终止或超时,或者I/O处理完毕,线程进入就绪状态。

5.死亡状态Dead

线程执行完了或者因为异常退出了run()方法,线程生命周期结束。

状态之间的转换关系

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章