面试知识

Java(编程语言)并发与锁体系

10-Java并发与锁体系 面试知识整理。

Java(编程语言)并发与锁体系

本文件是 Java(编程语言)并发模块的总入口。旧版单篇正文已按唯一迁移映射拆入 01 至 07 子文档;复习时先走知识路线,再进入具体机制和综合项目题。

1. 模块知识地图

flowchart TD
    A["线程生命周期与 JMM(Java 内存模型)"] --> B["volatile(可见性关键字)与内存屏障"]
    B --> C["synchronized(同步锁)与 HotSpot(热点虚拟机)实现"]
    C --> D["CAS(比较并交换)、AQS(抽象队列同步器)与 Lock(锁接口)"]
    D --> E["ThreadLocal(线程本地变量)与并发容器"]
    E --> F["线程池与异步编排"]
    F --> G["线上排障、项目话术与综合题库"]
    A --> H["可见性、原子性、有序性"]
    D --> I["状态、排队、挂起与唤醒"]
    F --> J["容量、背压、隔离与恢复"]
    G --> K["WMS(仓储管理系统)、支付、Runner(执行器)、IoT(物联网)"]

图中主线从并发语义进入同步机制,再走到资源治理与项目排障。面试回答也应遵循同样顺序:先定义共享状态和不变式,再选择发布、互斥、原子操作或排队工具,最后说明跨实例边界、故障恢复和监控证据。

2. 推荐学习顺序

顺序正式子文档学完应达到的能力
0知识图谱与复习路线掌握版本基线、迁移边界和复习顺序
1线程生命周期与 Java(编程语言)内存模型用状态转换、happens-before(先行发生)和安全发布证明正确性
2volatile、内存屏障与原子性区分可见性、有序性和复合操作原子性
3synchronized(同步锁)与 HotSpot(热点虚拟机)锁实现解释字节码、对象头、监视器、版本差异和死锁证据
4CAS(比较并交换)、AQS(抽象队列同步器)与 Lock(锁接口)体系演绎原子更新、同步队列、条件队列和并发工具选型
5ThreadLocal(线程本地变量)与并发容器解释弱键强值、线程池复用、上下文清理和共享边界
6线程池与异步编排计算容量、设计背压隔离并处理重试风暴
7线上排障、项目话术与综合题库用证据链排障,并完整复述库存、支付、导出和调度案例

3. 版本基线

版本主要用途回答边界
JDK(Java 开发工具包)8讲经典锁实现、AQS(抽象队列同步器)和线程池源码主线偏向锁与历史轻量级锁模型必须明确版本前提
JDK(Java 开发工具包)17长期支持版本对照偏向锁不是默认主路径,不能照搬旧锁升级图
JDK(Java 开发工具包)21当前长期支持版本与 virtual thread(虚拟线程)边界virtual thread(虚拟线程)降低阻塞线程成本,但不取消连接、限流和下游容量

语言层正确性应依赖 JMM(Java 内存模型)和 Java(编程语言)规范;对象头位图、私有字段、函数名与机器指令只代表特定 HotSpot(热点虚拟机)版本和运行环境。

4. 图表索引

图形主题所在章节用途
线程状态、安全发布与先行发生规则01解释状态、可见性和发布
内存屏障、重排序与丢失更新02解释 volatile(可见性关键字)边界
对象头、ObjectMonitor(对象监视器)与死锁03解释同步锁底层和取证
AQS(抽象队列同步器)同步队列与条件队列04解释排队、挂起和唤醒
AQS(抽象队列同步器)结构渲染图PNG(便携式网络图形)快速复习队列结构
ThreadLocal(线程本地变量)引用链与泄漏05解释脏数据和内存滞留
线程池决策、背压与重试风暴06解释容量和故障域
并发事故决策树与项目时序07训练线上排障与项目表达

5. 面试答题路线

  1. 先说共享状态和业务不变式,明确单 JVM(Java 虚拟机)还是多实例。
  2. 再判断问题属于可见性、原子性、有序性、资源上限还是故障恢复。
  3. 用 JMM(Java 内存模型)、锁、CAS(比较并交换)、AQS(抽象队列同步器)或线程封闭解释机制。
  4. 给一组线程交错、队列状态或容量数字,证明方案边界。
  5. 补充中断、超时、重试、宕机、跨实例和数据恢复。
  6. 最后回到项目指标、日志、线程转储、告警和复盘。

6. 综合题库入口

  • 机制复习题分布在每个知识小节的“热门面试题”中,均包含考点、回答思路、详细答案、进阶追问和进阶回答。
  • 模块综合训练位于线上排障、项目话术与综合题库,覆盖 CPU(中央处理器)飙高、死锁、线程池耗尽、库存防超卖、支付幂等、异步导出 OOM(内存溢出)、Runner(执行器)租约和 IoT(物联网)报警风暴。
  • AQS(抽象队列同步器)、ThreadLocal(线程本地变量)和线程池章节还各自提供长答案题库,用于专项深挖。

7. 完成状态与迁移说明

  • 01 至 07 子文档均已成稿并通过局部结构审计。
  • 内嵌 Mermaid(图表语法)图已使用 mmdc(Mermaid 命令行工具)11.4.2 和系统 Chrome(浏览器)真实渲染。
  • AQS(抽象队列同步器)PlantUML(开源建模工具)源文件已渲染为 PNG(便携式网络图形)。
  • 旧版 87 组回答思路按章节唯一迁移,子文档补齐了详细答案、进阶回答、项目数据和故障场景;本入口不再重复保留旧正文。