reading Java Concurrency in Practice

《Java Concurrency in Practice》(《Java并发编程实战》)是由 Brian Goetz 主笔,联合 Tim Peierls、Joshua Bloch、Joseph Bowbeer、David Holmes 和 Doug Lea 等并发领域的大师合著的一本 Java 并发编程权威著作。这本书主要内容围绕 Java 平台的并发编程模型,旨在帮助开发者编写线程安全、高性能、可维护的并发程序

📘 本书核心内容概览:

1. 并发基础知识

  • 什么是线程安全
  • Java 内存模型(JMM)
  • 可见性、原子性与有序性问题
  • 竞态条件与死锁
  • synchronized 和 volatile 的使用

2. 构建线程安全的类

  • 不可变对象(Immutable Object)
  • 使用锁机制保护状态(如:synchronized、ReentrantLock)
  • 线程封闭(Thread Confinement)
  • 组合线程安全组件的方法

3. Java 并发工具类

  • Java 5 引入的 java.util.concurrent
  • 核心类详解:ExecutorFutureBlockingQueueSemaphoreCountDownLatchCyclicBarrier
  • 如何正确使用线程池(ThreadPoolExecutor)

4. 活跃性与性能

  • 死锁、活锁、饥饿的定义与避免方法
  • 任务调度与取消
  • 性能调优技巧(比如减少锁的持有时间、使用无锁结构)

5. 测试与调试并发程序

  • 并发代码的测试难点
  • 常见测试方法与工具
  • 如何暴露并发缺陷(如使用 Thread.sleep 插入竞态窗口)

6. 更高级的并发设计

  • 发布与逸出问题
  • 安全发布(Safe Publication)
  • 原子变量与非阻塞算法(如 AtomicInteger、CAS)
  • 构建高性能并发程序的策略(分段锁、写时复制等)

✅ 这本书适合谁看?

  • Java 程序员,尤其是中高级开发者
  • 想深入理解并发底层机制的工程师
  • 构建高性能并发系统的架构师
  • 面试准备涉及并发知识点的求职者

📌 推荐理由:

  • 系统性强:既讲原理也讲实践;
  • 案例丰富:几乎每个概念都有代码示例;
  • 作者权威:参与了 JDK 并发库的设计和实现;
  • 虽出版于 2006 年,但对 Java 并发模型的讲解仍不过时,尤其适用于理解 Java 8 之前的主流并发技术。

Leave a Reply