07-线程的生命周期
public enum State {
// 表示没有开始的线程
NEW,
// 表示可运行(大家的翻译应该是就绪)的线程
// 表示在JVM正在运行,但是他可能需要等操作系统分配资源
// 比如CPU
RUNNABLE,
// 表示线程在等待监视器锁
// 表示正在等待监视器锁以便重新进进入同步块或者同步方法
// OR 在调用了Object.wait重新进入同步块或者同步方法
BLOCKED,
// 调用如下方法之一会进入WAITING
// 1. Object.wait() 没有加超时参数
// 2. 调用join() 没有加超时参数
// 3. 调用LockSupport.park()
// WAITING状态的线程在等待别的线程做一个特殊的事情(action)例如
// 1. 调用了wait的在等待其他线程调用notify或者notifyAll
// 2. 调用了join的在等待指定线程结束
WAITING,
// 就是有一个特定等待时间的线程
// 加上一个特定的正的超时时间调用如下方法会进入此状态
// 1. Thread.sleep
// 2. Thread.join(long)
// 3. LockSupport.parkNanos
// 4. LockSupport.parkUntil
TIMED_WAITING,
// 执行完了结束的状态
TERMINATED;
}
最后更新于