阶段 1:巩固基础,扩展并发工具类
-
并发集合类(Concurrent Collections)
ConcurrentHashMap
:分段锁/无锁设计、线程安全操作、性能优化CopyOnWriteArrayList
/CopyOnWriteArraySet
:适用场景与读写分离机制BlockingQueue
接口及其实现类:ArrayBlockingQueue
、LinkedBlockingQueue
PriorityBlockingQueue
、SynchronousQueue
- 使用场景(生产者-消费者模式)
-
同步工具类(Synchronizers)
CountDownLatch
:多任务等待场景CyclicBarrier
:多阶段并行任务协同Semaphore
:限流与资源池管理Phaser
:动态分阶段任务控制(Java 7+)Exchanger
:线程间数据交换
阶段 2:深入并发原语与原子操作
-
原子变量类(Atomic Classes)
AtomicInteger
、AtomicLong
、AtomicBoolean
等基础类型AtomicReference
、AtomicStampedReference
(解决ABA问题)LongAdder
/LongAccumulator
的性能优势与适用场景- CAS(Compare-And-Swap)原理与底层实现
-
显式锁的高级用法
ReentrantReadWriteLock
:读写锁分离优化StampedLock
(Java 8+):乐观读锁与锁升级Condition
接口:替代Object.wait()
/notify()
的精准线程唤醒
阶段 3:执行框架与异步编程
-
Executor 框架扩展
ScheduledThreadPoolExecutor
:定时任务与周期性任务Fork/Join
框架(Java 7+):ForkJoinPool
与工作窃取算法RecursiveTask
/RecursiveAction
分治任务设计
-
CompletableFuture(Java 8+)
- 异步编程模型与链式调用
- 组合多个异步任务(
thenCombine
、allOf
、anyOf
) - 异常处理与超时控制
阶段 4:并发底层与性能优化
-
Java 内存模型(JMM)
- 内存可见性、Happens-Before 原则
volatile
关键字的底层语义- 指令重排序与内存屏障
-
并发性能调优
- 线程池参数优化(核心线程数、队列选择)
- 避免伪共享(
@Contended
注解与缓存行填充) - 锁竞争诊断与无锁化设计
阶段 5:高级主题与实战
-
并发设计模式
- ThreadLocal 与线程封闭
- 不变性(Immutable)模式
- 生产者-消费者模式的高级变体
-
常见问题与调试
- 死锁检测(
jstack
、ThreadMXBean
) - 线程泄漏与资源管理
- 高并发场景下的性能瓶颈分析
- 死锁检测(
-
响应式编程与新技术
- 虚拟线程(Project Loom,Java 19+)
- Reactive Streams(
Flow
API,Java 9+)
学习建议
- 实践驱动:每个知识点配合代码示例(如实现一个高性能缓存、模拟高并发限流)。
- 源码阅读:重点阅读
ConcurrentHashMap
、ThreadPoolExecutor
等类的实现。 - 工具使用:通过 JConsole、VisualVM 或 Async-Profiler 分析线程状态和锁竞争。
- 参考资源:
- 《Java Concurrency in Practice》(经典必读)
- Oracle 官方文档的
java.util.concurrent
包说明 - 开源项目中的并发实现(如 Netty、Disruptor)