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(先行发生)和安全发布证明正确性 |
| 2 | volatile、内存屏障与原子性 | 区分可见性、有序性和复合操作原子性 |
| 3 | synchronized(同步锁)与 HotSpot(热点虚拟机)锁实现 | 解释字节码、对象头、监视器、版本差异和死锁证据 |
| 4 | CAS(比较并交换)、AQS(抽象队列同步器)与 Lock(锁接口)体系 | 演绎原子更新、同步队列、条件队列和并发工具选型 |
| 5 | ThreadLocal(线程本地变量)与并发容器 | 解释弱键强值、线程池复用、上下文清理和共享边界 |
| 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. 面试答题路线
- 先说共享状态和业务不变式,明确单 JVM(Java 虚拟机)还是多实例。
- 再判断问题属于可见性、原子性、有序性、资源上限还是故障恢复。
- 用 JMM(Java 内存模型)、锁、CAS(比较并交换)、AQS(抽象队列同步器)或线程封闭解释机制。
- 给一组线程交错、队列状态或容量数字,证明方案边界。
- 补充中断、超时、重试、宕机、跨实例和数据恢复。
- 最后回到项目指标、日志、线程转储、告警和复盘。
6. 综合题库入口
- 机制复习题分布在每个知识小节的“热门面试题”中,均包含考点、回答思路、详细答案、进阶追问和进阶回答。
- 模块综合训练位于线上排障、项目话术与综合题库,覆盖 CPU(中央处理器)飙高、死锁、线程池耗尽、库存防超卖、支付幂等、异步导出 OOM(内存溢出)、Runner(执行器)租约和 IoT(物联网)报警风暴。
- AQS(抽象队列同步器)、ThreadLocal(线程本地变量)和线程池章节还各自提供长答案题库,用于专项深挖。
7. 完成状态与迁移说明
- 01 至 07 子文档均已成稿并通过局部结构审计。
- 内嵌 Mermaid(图表语法)图已使用 mmdc(Mermaid 命令行工具)11.4.2 和系统 Chrome(浏览器)真实渲染。
- AQS(抽象队列同步器)PlantUML(开源建模工具)源文件已渲染为 PNG(便携式网络图形)。
- 旧版 87 组回答思路按章节唯一迁移,子文档补齐了详细答案、进阶回答、项目数据和故障场景;本入口不再重复保留旧正文。
