线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运
行、等待/阻塞。
1、新状态:线程对象已经创建,还没有在其上调用 start()方法。
2、 可运行状态: 当线程有资格运行, 但调度程序还没有把它选定为运行线程时线程所处的状态。
当 start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状
态回来后,也返回到可运行状态。
3、运行状态:线程调度程序从可运行池中选择一个线程作为当前线程时线程所处的状态。这也
是线程进入运行状态的唯一一种方式。
4、等待/阻塞/睡眠状态:这是线程有资格运行时它所处的状态。实际上这个三状态组合为一种,
其共同点是:线程仍旧是活的,但是当前没有条件运行。换句话说,它是可运行的,但是如果某
件事件出现,他可能返回到可运行状态。
5、死亡态:当线程的 run()方法完成时就认为它死去。这个线程对象也许是活的,但是,它已
经不是一个单独执行的线程。 线程一旦死亡, 就不能复生。 如果在一个死去的线程上调用 start()
方法,会抛出 java.lang.IllegalThreadStateException 异常。
|
|