Java线程状态的转换

1、线程状态java

 

线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待/阻塞。用一个图来描述以下:编程

 

一、新状态:线程对象已经建立,尚未在其上调用start()方法。多线程

 

二、可运行状态:当线程有资格运行,但调度程序尚未把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行以后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。线程

 

三、运行状态:线程调度程序从可运行池中选择一个线程做为当前线程时线程所处的状态。这也是线程进入运行状态的惟一一种方式。对象

 

四、等待/阻塞/睡眠状态:这是线程有资格运行时它所处的状态。实际上这个三状态组合为一种,其共同点是:线程仍旧是活的,可是当前没有条件运行。换句话说,它是可运行的,可是若是某件事件出现,他可能返回到可运行状态。blog

 

五、死亡态:当线程的run()方法完成时就认为它死去。这个线程对象也许是活的,可是,它已经不是一个单独执行的线程。线程一旦死亡,就不能复生。 若是在一个死去的线程上调用start()方法,会抛出java.lang.IllegalThreadStateException异常。事件

 

有关详细状态转换图能够参看本人的“Java多线程编程总结”中的图get

相关文章
相关标签/搜索