Java中线程一共有几种状态呢?
在Java中线程的状态已经在Thread类中定义好了枚举,一共有6种
这是Thread类中定义的枚举。
public enum State {
NEW,
RUNNABLE,
BLOCKED,
WAITING,
TIMED_WAITING,
TERMINATED;
}
分别为:
- New:尚未启动的线程的线程状态
- Runnable:可运行线程的线程状态,等待CPU调度。
- Blocked:线程阻塞等待监视器锁定的线程状态,处于synchronized同步代码块或者方法中被阻塞
- Waiting:等待线程的线程状态。下列不带超时的方式:
- Object.wait,Thread.join,LockSupport.park
- Timed Waiting:具体指定等待时间的等待线程的线程状态。下列带超时时间的方式:
- Thread.sleep, Object.wait, Thread.join, LockSupport.parkNanos , LockSupport.parkUnitl
- Terminated:终止线程的线程状态,线程正常完成执行或者出现异常。
看到很多文章都写了Java中的线程状态是五种,不知道依据是什么。
请大家记住了 Java中的线程状态是六种不是五种,面试中别回答错了哦!