六个状态
新建(New)
- 创建后尚未启动的线程状态
运行(Runnable)
- 包含Running和Ready
无限期等待(Waiting)
- 不会被分配CPU执行时间,需要显式被唤醒
- 例: 没有设置Timeout参数的 Object.wait()方法。
- 没有设置Timeout参数的Thread.join()方法。
- LockSupport.park()方法
限期等待(Timed Waiting)
- 在一定时间后会由系统自动唤醒
- 例:Thread.sleep()方法
- 设置了 Timeout参数的 Object.wait()方法
- 设置了Timeout参数的 Thread.join()方法
- LockSupport.parkNanos()方法
- LockSupport.parkUntil()方法
阻塞(Blocked)
- 等待获取排它锁
结束(Terminated)
- 已终止线程的状态,线程已结束执行