新建状态 new
new Thread()的时候,只是创建的一个thread实例, 它具备了可执行的能力, 但是此时并不是一个线程
就绪状态 runnable
此时线程具备了可执行的能力, 调用start方法之后会进入该状态, 已经获取到了除cpu之外的资源, 内存空间等,但还未获取到cpu时间片,并未执行
运行状态 running
此时线程可能会获取到了cpu的时间片, 进入运行状态, 但是也可能未获取到时间片,未被cpu选中,重新回到runnable状态等待
阻塞状态 blocked
当运行了 Thread.sleep() , 锁, 或者是等待方法后会进入阻塞状态, 当进入此状态时,不能直接恢复到running状态,会先进入runnable状态重新等待cpu调度
终结状态 terminated
- 线程正常运行结束
- 线程在blocking的被中断
- runnable由于平台原因等造成线程terminated