01.并发理论基础

来源:极客时间·Java并发编程实战

学习顺序

第一层:理解问题根源

  1. 02.并发编程的三个核心问题 — 分工、同步、互斥,建立全局视角
  2. 03.可见性、有序性与原子性问题 — Bug 的三个来源
  3. 04.Java内存模型JMM — JMM 如何解决可见性与有序性(volatile / happens-before)

第二层:解决互斥与同步

  1. 05.原子性解决方案-互斥锁 — synchronized 用法与细粒度锁
  2. 死锁问题与解决方案 — 死锁四条件与三种破坏方式(归档)
  3. 06.等待-通知机制 — wait/notify,降低空转 CPU
  4. 07.管程Monitor — MESA 模型,synchronized 底层模型

第三层:线程基础

  1. 08.Java线程 — 线程生命周期、创建方式、线程数设置

第四层:并发工具类

  1. 09.并发工具类 — Lock/Condition、Semaphore、ReadWriteLock、StampedLock、CountDownLatch、CyclicBarrier、并发容器、Future/CompletableFuture、Fork/Join
  2. CAS学习 — 无锁方案底层原理(归档)
  3. AQS抽象队列同步器原理 — Lock 系列的底层框架(归档)
  4. 线程池ThreadPoolExecutor — 线程池参数与原理(归档)
  5. Future模式与Promise模式 — Future/CompletableFuture 深入(归档)

第五层:并发设计模式

  1. 10.并发设计模式 — Immutability、Copy-on-Write、ThreadLocal、Guarded Suspension
  2. 11.ThreadLocal — 线程本地存储原理与内存泄漏