1.新建状态new:
线程对象被new创建后会进入新建状态
Thread thread = new Thread();
2.就绪状态Runnable:
就绪状态,即可执行状态。线程创建后,其他线程调用该对象的start()方法。线程处于就绪状态等待被CPU调度。
thread.start()
3.运行状态Running
处于就绪状态的线程获取cpu权限进行执行,线程只能通过就绪态进入运行状态。
4.阻塞状态Blocked
线程因为某种原因放弃CPU使用权,暂时停止运行。
4.1等待阻塞
通过调用线程的wait()方法,让线程暂停等待某工作的完成。
4.2同步阻塞
线程获取同步锁synchronized失败,进入阻塞状态。
4.3其他阻塞
调用线程的sleep()、join()或发出I/O请求进入阻塞状态。
等待sleep()超时,join()等待线程终止或超时,或者I/O处理完毕,线程进入就绪状态。
5.死亡状态Dead
线程执行完了或者因为异常退出了run()方法,线程生命周期结束。