<aside> <img src="notion://custom_emoji/c233e7bc-acd0-812b-a811-00030dcd1edc/29e3e7bc-acd0-808e-ac64-007a3fac687d" alt="notion://custom_emoji/c233e7bc-acd0-812b-a811-00030dcd1edc/29e3e7bc-acd0-808e-ac64-007a3fac687d" width="40px" />

多线程面试核心问题

</aside>

在 Java 中,线程的生命周期被明确地定义在 java.lang.Thread.State 这个枚举类中。一个线程在任何给定时间点,都有且仅有处于这六种状态中的一种。


线程的六种状态 (The 6 States)

这六种状态是:

  1. NEW (新建)
  2. RUNNABLE (可运行)
  3. BLOCKED (阻塞)
  4. WAITING (无限等待)
  5. TIMED_WAITING (限时等待)
  6. TERMINATED (终止)

1.  NEW (新建)

2.  RUNNABLE (可运行)

这是最容易误解的状态。在 Java 的视角里,RUNNABLE 状态包含了传统操作系统所说的**“就绪态”“运行中”**两种状态。