Victor's Code Journey
Victor's Code Journey

系列 - Java 并发

Java 并发编程的原理与源码。

这个系列按「问题 → 机制 → 源码」的顺序推进:先讲线程安全要解决什么,再看 volatile、synchronized、ThreadLocal、Future、Lock 这些语言与 API 层面的手段,然后往下一层到 Unsafe、同步器与锁的底层实现,最后是线程池、原子变量、CompletableFuture、fork-join 这些实战构件。

Unsafe 和同步器那两篇是理解后面所有并发工具的地基,建议不要跳过。

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