面试知识

Java(编程语言)并发与锁体系:知识图谱与复习路线

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

Java(编程语言)并发与锁体系:知识图谱与复习路线

本入口为 Java(编程语言)并发与锁体系建立迁移边界、学习顺序和验收口径。模块总入口已完成导航化,01 至 07 子文档承担正式正文。

当前状态与题目基线

项目当前值说明
模块状态已完成01 至 07 教材子文档、综合题库和模块总入口均已完成并通过局部审计。
迁移计数口径回答思路以每个“回答思路”作为一组题目的唯一计数依据。
旧主文档题目基线87 组后续迁移后必须逐组可追溯。
旧题目状态已迁移子文档已补齐详细答案、进阶回答、数据演绎和项目失败路径。
主文档处理已导航化只保留知识地图、学习顺序、版本基线、图表和题库入口。

学习顺序与深度等级

顺序学习主题目标深度通过标准
1线程生命周期与 JMM(Java 内存模型)L1(概念识别)→ L4(内存语义与发布)能用状态流转、可见性和先行发生规则解释并发问题。
2volatile(可见性关键字)、内存屏障与原子性L2(机制理解)→ L4(指令重排与数据演绎)能区分可见性、有序性和复合操作原子性。
3synchronized(同步锁)与 HotSpot(热点虚拟机)锁实现L2(机制理解)→ L4(对象头与排障)能解释锁竞争、可重入、监视器队列和死锁证据。
4CAS(比较并交换)、AQS(抽象队列同步器)与 Lock(锁接口)L2(机制理解)→ L4(源码与图解)能演绎入队、挂起、唤醒和公平性权衡。
5ThreadLocal(线程本地变量)与并发容器L2(机制理解)→ L4(泄漏与隔离边界)能说明线程池复用、确定性清理和容器选型。
6线程池与异步编排L2(机制理解)→ L4(容量、背压与恢复)能计算容量、解释拒绝策略并设计隔离。
7线上排障、项目话术与综合题库L3(原理与边界)→ L4(项目话术与排障)能将库存防超卖、异步任务和 Runner(执行器)调度完整复述。

JDK(Java 开发工具包)版本基线

版本使用方式迁移要求
JDK(Java 开发工具包)8并发语义和锁实现的主讲解基线。保留 JMM(Java 内存模型)、CAS(比较并交换)、AQS(抽象队列同步器)和线程池关键路径。
JDK(Java 开发工具包)17长期支持版本对照基线。不把偏向锁视为默认可用能力;锁实现差异必须在对应章节说明。
JDK(Java 开发工具包)21当前长期支持版本对照基线。将虚拟线程与传统线程池的适用边界单列,避免把线程池结论泛化到所有并发模型。

计划路径与交付状态

以下教材和图形产物均已创建。

| 计划路径 | 目标深度 | 当前状态 | 主要交付 | | --- | --- | --- | | 01-线程生命周期与 Java(编程语言)内存模型 | L4(内存语义与发布) | 已完成 | 线程状态、JMM(Java 内存模型)、安全发布和重排序。 | | 02-volatile内存屏障与原子性 | L4(指令重排与数据演绎) | 已完成 | volatile(可见性关键字)、屏障和丢失更新。 | | 03-synchronized(同步锁)与 HotSpot(热点虚拟机)锁实现 | L4(对象头与排障) | 已完成 | synchronized(同步锁)、监视器、锁竞争和死锁。 | | 04-CAS(比较并交换)、AQS(抽象队列同步器)与 Lock(锁接口)体系 | L4(源码与图解) | 已完成 | CAS(比较并交换)、AQS(抽象队列同步器)和锁工具。 | | 05-ThreadLocal(线程本地变量)与并发容器 | L4(泄漏与隔离边界) | 已完成 | ThreadLocal(线程本地变量)、并发容器和上下文清理。 | | 06-线程池与异步编排 | L4(容量、背压与恢复) | 已完成 | 线程池、异步编排、超时和重试风暴。 | | 07-线上排障项目话术与综合题库 | L4(项目话术与排障) | 已完成 | 线程池耗尽、死锁、库存防超卖和综合口述题。 | | assets/aqs-queue.puml | 图形源文件 | 已完成 | AQS(抽象队列同步器)同步队列和条件队列。 | | assets/aqs-queue.png | 图形渲染结果 | 已完成 | 经 PlantUML(开源建模工具)渲染的图形产物。 |

旧章节唯一迁移映射

迁移时每个旧章节只归属一个目标文件;其他章节只能链接引用,不能复制成多份正文。题目迁移仍以 87 组“回答思路”基线核对。

旧主文档章节唯一目标文件迁移内容
1. 简历关联点2. 面试主线5.1 并发工具选择图12. 本模块复习清单00-知识图谱与复习路线.md项目关联、学习顺序、工具选择总览和复习回归检查。
3.1 线程状态3.2 三大并发问题3.3 JMM(Java 内存模型)01-线程生命周期与Java内存模型.md状态、可见性、原子性、有序性和安全发布。
4.1 volatile(可见性关键字)7.1 count++ 丢失更新11.2 内存屏障和 volatile(可见性关键字)02-volatile内存屏障与原子性.md内存屏障、重排序和原子性边界。
4.2 synchronized(同步锁)6.2 sleep(睡眠)与 wait(等待)03-synchronized与HotSpot锁实现.md监视器、等待唤醒、锁竞争和对象头。
4.3 CAS(比较并交换)4.4 AQS(抽象队列同步器)5.2 AQS(抽象队列同步器)排队模型6.1 synchronized(同步锁)与 ReentrantLock(可重入锁)11.3 LongAdder(高并发累加器)和 AtomicLong(原子长整型)04-CAS-AQS与Lock体系.md原子更新、同步队列、锁接口和高竞争计数。
11.1 ThreadLocal(线程本地变量)在线程池里的泄漏过程05-ThreadLocal与并发容器.md引用链、线程复用、清理和容器选型。
4.5 线程池7.2 线程池任务堆积演绎11.4 CompletableFuture(异步编排)和线程池隔离11.5 线程池拒绝与重试风暴06-线程池与异步编排.md执行流程、容量、隔离、超时和背压。
8.1 线程池耗尽排查8.2 死锁排查9.1 库存防超卖话术9.2 异步任务线程池话术9.3 synchronized(同步锁)底层话术10. 高频面试题与追问07-线上排障项目话术与综合题库.md排障证据、项目表达和综合口述题。

必画图与完成判定

图形所属目标文件产物要求当前状态
线程状态与 JMM(Java 内存模型)交互01-线程生命周期与Java内存模型.mdMermaid(图表语法)状态图、内存交互图和安全发布演绎。7/7 已渲染通过
volatile(可见性关键字)屏障与重排序边界02-volatile内存屏障与原子性.mdMermaid(图表语法)顺序图和 count++ 数据演绎。7/7 已渲染通过
synchronized(同步锁)竞争与监视器队列03-synchronized与HotSpot锁实现.mdMermaid(图表语法)时序图和锁竞争路径。10/10 已渲染通过
AQS(抽象队列同步器)同步队列、挂起与唤醒04-CAS-AQS与Lock体系.mdassets/aqs-queue.puml 使用 !pragma layout smetana,并渲染为 PNG(便携式网络图形)。10/10 Mermaid(图表语法)图与 1/1 PlantUML(开源建模工具)图已渲染通过
ThreadLocal(线程本地变量)引用链05-ThreadLocal与并发容器.mdMermaid(图表语法)图和线程池泄漏数据演绎。7/7 已渲染通过
线程池拒绝、背压和恢复06-线程池与异步编排.mdMermaid(图表语法)决策树和容量计算。11/11 已渲染通过
死锁、线程池耗尽与项目排障07-线上排障项目话术与综合题库.md线上证据链和项目故障恢复路径。9/9 已渲染通过

模块只有在下列条件全部满足时才可标记为“已完成”:87 组基线均有唯一去向并补齐详细答案与进阶回答;各知识章节具备完整题目字段;所有计划图形可渲染;术语、链接、围栏和占位句审计通过;并且库存、异步任务和 Runner(执行器)案例可直接用于面试复述。