线程状态(State
枚举值代表线程状态):
Thread thread = new Thread()
。start
方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取 cpu 的使用权。run()
方法),此时除非此线程自动放弃 CPU 资源或者有优先级更高的线程进入,线程将一直运行到结束sleep
,suspend
,wait
等方法都可以导致线程阻塞WAITING
,它可以在指定的时间后自行返回。run
方法执行结束或者调用stop
方法后,该线程就会死亡。对于已经死亡的线程,无法再使用start
方法令其进入就绪。 线程在Running的过程中可能会遇到阻塞(Blocked)情况:
join()
和sleep()
方法,sleep()
时间结束或被打断,join()
中断,IO完成都会回到Runnable
状态,等待JVM的调度。wait()
,使该线程处于等待池(wait blocked pool),直到notify()
/notifyAll()
,线程被唤醒被放到锁定池(lock blocked pool ),释放同步锁使线程回到可运行状态(Runnable)