1.初始状态: new Thread 没有执行start()时
2.就绪状态:获取所有资源,等待获取cpu执行权时(执行start()后)
3.运行状态:就绪状态获取cpu执行权时
4.阻塞状态:处于运行状态中的线程由于某种原因,暂时放弃对CPU的使用权
5.死亡状态:线程执行完或者因异常退出run()结束生命周期
就绪状态转换为运行状态:当此线程得到处理器资源;
运行状态转换为就绪状态:当此线程主动调用yield()方法或在运行过程中失去处理器资源。
运行状态转换为死亡状态:当此线程线程执行体执行完毕或发生了异常。
此处需要特别注意的是:当调用线程的yield()方法时,线程从运行状态转换为就绪状态,但接下来CPU调度就绪状态中的哪个线程具有一定的随机性,因此,可能会出现A线程调用了yield()方法后,接下来CPU仍然调度了A线程的情况。