内容简介
第1章 Java多线程编程实战基础
1.1 无处不在的线程
1.2 线程的创建与运行
1.3 线程的状态与上下文切换
1.4 线程的监视
1.5 原子性、内存可见性和重排序——重新认识synchronized和volatile
1.6 线程的优势和风险
1.7 多线程编程常用术语
第2章 设计模式简介
2.1 设计模式及其作用
2.2 多线程设计模式简介
2.3 设计模式的描述
第3章 Immutable Object(不可变对象)模式
3.1 Immutable Object模式简介
3.2 Immutable Object模式的架构
3.3 Immutable Object模式实战案例解析
3.4 Immutable Object模式的评价与实现考量
3.5 Immutable Object模式的可复用实现代码
3.6 Java标准库实例
3.7 相关模式
3.7.1 Thread Specific Storage模式(第10章)
3.7.2 Serial Thread Confinement模式(第11章)
3.8 参考资源
第4章 Guarded Suspension(保护性暂挂)模式
4.1 Guarded Suspension模式简介
4.2 Guarded Suspension模式的架构
4.3 Guarded Suspension模式实战案例解析
4.4 Guarded Suspension模式的评价与实现考量
4.4.1 内存可见性和锁泄漏(Lock Leak)
4.4.2 线程过早被唤醒
4.4.3 嵌套监视器锁死
4.5 Guarded Suspension模式的可复用实现代码
4.6 Java标准库实例
4.7 相关模式
4.7.1 Promise模式(第6章)
4.7.2 Producer-Consumer模式(第7章)
4.8 参考资源
第5章 Two-phase Termination(两阶段终止)模式
5.1 Two-phase Termination模式简介
5.2 Two-phaseTermination模式的架构
5.3 Two-phaseTermination模式实战案例解析
5.4 Two-phaseTermination模式的评价与实现考量
5.4.1 线程停止标志
5.4.2 生产者-消费者问题中的线程停止
5.4.3 隐藏而非暴露可停止的线程
5.5 Two-phaseTermination模式的可复用实现代码
5.6 Java标准库实例
5.7 相关模式
5.7.1 Producer-Consumer模式(第7章)
5.7.2 Master-Slave模式(第12章)
5.8 参考资源
第6章 Promise(承诺)模式
6.1 Promise模式简介
6.2 Promise模式的架构
6.3 Promise模式实战案例解析
6.4 Promise模式的评价与实现考量
6.4.1 异步方法的异常处理
6.4.2 轮询(Polling)
6.4.3 异步任务的执行
6.5 Promise模式的可复用实现代码
6.6 Java标准库实例
6.7 相关模式
6.7.1 Guarded Suspension模式(第4章)
6.7.2 Active Object模式(第8章)
6.7.3 Master-Slave模式(第12章)
6.7.4 Factory Method模式
6.8 参考资源
第7章 Producer-Consumer(生产者/消费者)模式
7.1 Producer-Consumer模式简介
7.2 Producer-Consumer模式的架构
7.3 Producer-Consumer模式实战案例解析
7.4 Producer-Consumer模式的评价与实现考量
7.4.1 通道积压
7.4.2 工作窃取算法
7.4.3 线程的停止
7.4.4 高性能高可靠性的Producer-Consumer模式实现
7.5 Producer-Consumer模式的可复用实现代码
7.6 Java标准库实例
7.7 相关模式
7.7.1 Guarded Suspension模式(第4章)
7.7.2 Thread Pool模式(第9章)
7.8 参考资源
第8章 Active Object(主动对象)模式
8.1 Active Obiect模式简介
8.2 Active Object模式的架构
8.3 Active Object模式实战案例解析
8.4 Active Object模式的评价与实现考量
8.4.1 错误隔离
8.4.2 缓冲区监控
8.4.3 缓冲区饱和处理策略
8.4.4 Scheduler空闲工作者线程清理
8.5 Active Object模式的可复用实现代码
8.6 Java标准库实例
8.7 相关模式
8.7.1 Promise模式(第6章)
8.7.2 Producer-Consumer模式(第7章)
8.8 参考资源
第9章 Thread Pool(线程池)模式
9.1 Thread Pool模式简介
9.2 Thread Pool模式的架构
9.3 Thread Pool模式实战案例解析
9.4 Thread Pool模式的评价与实现考量
9.4.1 工作队列的选择
9.4.2 线程池大小调校
9.4.3 线程池监控
9.4.4 线程泄漏
9.4.5 靠性与线程池饱和处理策略
9.4.6 死锁
9.4.7 线程池空闲线程清理
9.5 Thread Pool模式的可复用实现代码
9.6 Java标准库实例
9.7 相关模式
9.7.1 Two-phase Termination模式(第5章)
9.7.2 Promise模式(第6章)
9.7.3 Producer-Consumer模式(第7章)
9.8 参考资源
第10章 Thread Specific Storage(线程特有存储)模式
10.1 Thread Specific Storage模式简介
10.2 Thread Specific Storage模式的架构
10.3 Thread Specific Storage模式实战案例解析
10.4 Thread Specific Storage模式的评价与实现考量
10.4.1 线程池环境下使用Thread Specific Storage模式
10.4.2 内存泄漏与伪内存泄漏
10.5 Thread Specific Storage模式的可复用实现代码
10.6 Java标准库实例
10.7 相关模式
10.7.1 Immutable Object模式(第3章)
10.7.2 Proxy(代理)模式
10.7.3 Singleton(单例)模式
10.8 参考资源
第11章 Serial Thread Confinement(串行线程封闭)模式
11.1 Serial Thread Confinement模式简介
11.2 Serial Thread Confinement模式的架构
11.3 Serial Thread Confinement模式实战案例解析
11.4 Serial Thread Confinement模式的评价与实现考量
11.5 Serial Thread Confinement模式的可复用实现代码
11.6 Java标准库实例
11.7 相关模式
11.7.1 Immutable Object模式(第3章)
11.7.2 Promise模式(第6章)
11.7.3 Producer-Consumer模式(第7章)
11.7.4 Thread Specific Storage(线程特有存储)模式(第10章)
11.8 参考资源
第12章 Master-Slave(主仆)模式
12.1 Master-Slave模式简介
12.2 Master-Slave模式的架构
12.3 Master-Slave模式实战案例解析
12.4 Master-Slave模式的评价与实现考量
12.4.1 子任务的处理结果的收集
12.4.2 Slave参与者实例的负载均衡与工作窃取
12.4.3 可靠性与异常处理
12.4.4 Slave线程的停止
12.5 Master-Slave模式的可复用实现代码
12.6 Java标准库实例
12.7 相关模式
12.7.1 Two-phaseTermination模式(第5章)
12.7.2 Promise模式(第6章)
12.7.3 Strategy(策略)模式
12.7.4 Template(模板)模式
12.7.5 Factory Method(工厂方法)模式
12.8 参考资源
第13章 Pipeline(流水线)模式
13.1 Pipeline模式简介
13.2 Pipeline模式的架构
13.3 Pipeline模式实战案例解析
13.4 Pipeline模式的评价与实现考量
13.4.1 Pipeline的深度
13.4.2 基于线程池的Pipe
13.4.3 错误处理
13.4.4 可配置的Pipeline
13.5 Pipeline模式的可复用实现代码
13.6 Java标准库实例
13.7 相关模式
13.7.1 SerialThread Confinement模式(第11章)
13.7.2 Master-Slave模式(第12章)
13.7.3 Composite模式
13.8 参考资源
第14章 Half-sync/Half-async(半同步/半异步)模式
14.1 Half-sync/Half-async模式简介
14.2 Half-sync/Half-async模式的架构
14.3 Half-sync/Half-async模式实战案例解析
14.4 Half-sync/Half-async模式的评价与实现考量
14.4.1 队列积压
14.4.2 避免同步层处理过慢
14.5 Half-sync/Half-async模式的可复用实现代码
14.6 Java标准库实例
14.7 相关模式
14.7.1 Two-phaseTermination模式(第5章)
14.7.2 Producer-Consumer模式(第7章)
14.7.3 Active Object模式(第8章)
14.7.4 Thread Pool模式(第9章)
14.8 参考资源
第15章 模式语言
15.1 模式与模式间的联系
15.2 Immutable Object(不可变对象)模式
15.3 Guarded Suspension(保护性暂挂)模式
15.4 Two-phase Termination(两阶段终止)模式
15.5 Promise(承诺)模式
15.6 Producer-Consumer(生产者/消费者)模式
15.7 Active Object(主动对象)模式
15.8 Thread Pool(线程池)模式
15.9 Thread Specific Storage(线程特有存储)模式
15.10 SerialThreadConfinement(串行线程封闭)模式
15.11 Master-Slave(主仆)模式
15.12 Pipeline(流水线)模式
15.13 Half-sync/Half-async(半同步/半异步)模式
附录A 本书常用UML图指南
参考文献