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