新建状态---就绪状态---运行状态---堵塞状态---死亡状态
1.新建状态(new):当用new创建一个线程时,此线程并未开始运行,此时线程处于新建状态。
2.就绪状态(runnable):新创建的线程并不会自动运行,要调用start()方法才会执行线即启动了线程,start()方法建线程运行的系统资源,并调用run()方法,当start()方法返回后,线程就处于就绪状态。
3.运行状态(running):当线程获得CPU时间后,才进入真正的运行状态,真正开始执行run()方法。
4.堵塞状态(blocked):所谓堵塞状态就是正在运行的线程没有运行结果。线程在运行过程中会遇到各种的原因形成堵塞状态:
a.线程通过调用sleep()方法进入睡眠状态。
b.线程调用一个在I/O上被堵塞的操作,该操作在输入输出操作完成之前不会反回它的调用者。
c.线程在调用一个锁,而该锁正在被其他线程使用。
d.线程在等待某个触发条件。
5.死亡状态(dead):有两个原因会导致死亡状态:
a.run()方法正常退出而自然死亡
b.一个未捕获的异常终止了run()方法而线程死亡。