后端岗位面试题更新 2026-08-05

Java线程有哪些状态?阻塞(Blocked)和等待(Waiting)的区别是什么?

阿里云后端开发专业服务问题拆解技术原理Java

考察说明

考察Java线程状态模型及其转换条件,特别是阻塞与等待的语义差异

回答思路

  1. 完整列出Java线程的五种或六种状态(NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED)
  2. 准确说明线程在何种场景下进入BLOCKED(等待获取监视器锁)
  3. 说明进入WAITING(Object.wait、Thread.join、LockSupport.park)及TIMED_WAITING(带超时)的条件
  4. 解释阻塞与等待本质区别:阻塞是被动等待锁释放,等待是主动等待其他线程通知或条件
  5. 能说出状态流转的典型示例,如synchronized竞争、wait/notify协作
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。