简述线程的几种状态以及状态之间的转换

话不多说,直接上图,纯手工绘制,绝对简单明了,通俗易懂,全网只此一份,哈哈

简述线程的几种状态以及状态之间的转换_第1张图片

根据上边的图片,简单描述一下

线程有以下几种状态

1、new 新建状态(此时线程刚被new出来,还没执行start()方法)

2、Runable 运行状态,有执行资格又有执行权,但它可能正在等待来自操作系统的其他资源,例如处理器。

3、Blocked 阻塞状态,也称临时状态,有执行资格,但是没有执行权,需要等待执行权

4、冻结状态,有的书上又将冻结细分为Waiting 无限期等待和Timed_Waiting 有限期等待

Waiting 无限期等待状态 是用wait方法,线程自己不会醒,需要用notify方法或者其他方法来唤醒

Timed_Waiting 有限期等待状态 是用sleep方法传入一个要睡眠的时间,时间到了以后线程自己会醒

冻结状态的线程是没有执行资格,更没有执行权

5、TERMINATED 终止消亡状态:表示该线程已经执行完毕。

 

 

你可能感兴趣的:(Java开发总结)