系列 - Java 并发
Java 并发编程的原理与源码。
这个系列按「问题 → 机制 → 源码」的顺序推进:先讲线程安全要解决什么,再看 volatile、synchronized、ThreadLocal、Future、Lock 这些语言与 API 层面的手段,然后往下一层到 Unsafe、同步器与锁的底层实现,最后是线程池、原子变量、CompletableFuture、fork-join 这些实战构件。
Unsafe 和同步器那两篇是理解后面所有并发工具的地基,建议不要跳过。
| # | 篇目 | 这一篇讲什么 |
|---|---|---|
| 01 | Java并发之线程安全 | 管理共享可变状态的访问——并发编程要解决的核心问题 |
| 02 | Java并发之volatile关键字 | 稍弱的同步机制,保证可见性但不保证原子性 |
| 03 | Java并发之synchronized | 最基础的同步手段,锁的是对象而不是代码 |
| 04 | Java并发之ThreadLocal | 线程封闭,用每线程一份副本换取免加锁 |
| 05 | Java并发之Future | 异步计算的基本接口 Future |
| 06 | Java并发之Lock简介 | 比 synchronized 更灵活的锁接口 |
| 07 | Java并发之Unsafe | 并发编程底层依赖的内存操作原语 Unsafe |
| 08 | Java并发之Lock原理解析 | 同步器如何把锁的语义真正实现出来 |
| 09 | Java并发之线程池-ThreadPoolExecutor | 线程池的构造参数、队列策略与任务执行流程 |
| 10 | Java并发之并发优先线程池 | 为 CPU 密集型任务定制的扩展线程池 |
| 11 | Java并发之原子变量Atomic | 基于 CPU 原子指令的无锁更新 |
| 12 | Java并发之CompletableFuture | 表达多个异步结果之间的依赖关系 |
| 13 | Java并发之forkjoin框架 | 分治与工作窃取,论文导读 |
| 14 | Java并发之线程池-ScheduledThreadPoolExecutor | 延时任务与周期调度线程池的源码分析 |