https://juejin.cn/post/6844903558433734669
阅读起来相当费劲,7种状态
public enum State {// 表示没有开始的线程NEW,// 表示可运行(大家的翻译应该是就绪)的线程// 表示在JVM正在运行,但是他可能需要等操作系统分配资源// 比如CPURUNNABLE,// 表示线程在等待监视器锁// 表示正在等待监视器锁以便重新进进入同步块或者同步方法// 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.parkUntilTIMED_WAITING,// 执行完了结束的状态TERMINATED;}

