如上图所示:
一个线程的生命周期中有五中状态:新建、就绪、运行、阻塞和结束
(1)新建:线程对象已创建,但还没有启动。
(2)就绪:调用start()方法后,线程进入就绪状态。在这种状态下,只要它获得CPU就可以运行了。
(3)运行:操作系统给准备就绪的线程分配CPU时间,线程就开始运行。
(4)阻塞:线程能够运行,但需要等待某种条件。比如:线程调用了sleep()方法正在休眠,或者调用了wait()方法正在等待,又或者它正在等待一个I/O操作的完成。处于这个状态的线程,操作系统不会非陪给它任何CPU处理时间的,除非它等待的条件已经满足并且重新就如就绪状态。
(5)结束:线程的run()方法执行完毕后,线程就进入结束状态。进入结束状态的线程将被系统永久清除。