Java多线程编程实战指南:设计模式篇(第2版)

Java多线程编程实战指南:设计模式篇(第2版)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

本书用Java诠释多线程编程的“三十六计”——多线程设计模式,对每个设计模式的讲解都附有实战案例和源代码解析。

内容简介

随着CPU多核时代的到来,多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。

解决多线程编程中频繁出现的普遍问题,可以借鉴设计模式所提供的现成解决方案。然而,多线程编程相关的设计模式图书多采用C++作为描述语言,且书中所举的例子多与应用开发人员的实际工作相去甚远。

本书采用Java语言和UML为描述语言,并结合作者多年工作经历及相关实践经验,介绍了多线程环境下常用设计模式的来龙去脉:各个设计模式是什么样的、典型的实际应用场景、实际应用时需要注意的事项及各个设计模式的可复用代码实现代码。

本书第2版除更正了第1版中的错误外,还新增了JDK8、JDK9中与多线程设计模式相关的内容,并对代码进行了重构和重新排版,使代码部分重点更突出、更易于阅读。

本书适合有一定Java多线程编程基础、经验的读者阅读。

作者简介

作者黄文海,2004年开始从事软件开发工作,近几年从事软件项目管理工作。

他在工作过程中积累了丰富的技术指导经验和企业内部培训经验。曾在InfoQ中文站和IBM developerWorks上发表过十几篇技术、项目管理文章。

章节目录

版权信息

内容简介

推荐序

前言

第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.4.1 适用场景

3.4.2 对垃圾回收(Garbage Collection)的影响

3.4.3 使用等效或者近似的不可变对象

3.4.4 防御性复制

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-phase Termination模式的架构

5.3 Two-phase Termination模式实战案例解析

5.4 Two-phase Termination模式的评价与实现考量

5.4.1 线程停止标志

5.4.2 生产者/消费者问题中的线程停止

5.4.3 隐藏而非暴露可停止线程

5.5 Two-phase Termination模式的可复用实现代码

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 轮询

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 非阻塞式反压与Reactive Streams规范

7.4.4 工作窃取算法

7.4.5 线程的停止

7.4.6 高性能、高可靠性的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 Object模式简介

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-phase Termination模式(第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 Serial Thread 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-phase Termination模式(第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 Serial Thread Confinement模式

15.11 Master-Slave模式

15.12 Pipeline模式

15.13 Half-sync/Half-async模式

附录A 本书常用UML图指南

A.1 UML简介

A.2 类图(Class Diagram)

A.2.1 类的属性、方法和立体型(Stereotype)

A.2.2 类之间的关系

A.3 序列图(Sequence Diagram)

参考文献

Java多线程编程实战指南:设计模式篇(第2版)是2020年由电子工业出版社出版,作者黄文海。

得书感谢您对《Java多线程编程实战指南:设计模式篇(第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Java高级程序设计实战教程 电子书
本书是在读者初步掌握Java的基础知识和技能之后,进一步学习Java高级编程的指导用书。主要内容包括Java编码规范、Java集合框架、Java反射机制、Java泛型机制、Java序列化机制、Java多线程机制、Java网络编程、Java数据库编程、综合实训等。本书能够使读者逐步领会并掌握Java的编程思想和技能,为进一步学习J2EE框架技术奠定了扎实的基础。
Java编程技术大全 电子书
本书内容全面、知识结构安排合理、以实例驱动学习,更以项目实战来总结书中所讲内容,易学、易用。
Android 源码设计模式解析与实战 电子书
本书适合的读者为初、中、高级Android工程师,也可以作为大专院校相关师生的学习用书和培训学校的教材。
Java EE核心框架实战(第2版) 电子书
本书宗旨 提高读者学习Java EE的效率,增强其项目实战能力。本书摒弃了软件公司中不常用或不实用的技术,而是采用近200个开发案例,为读者讲解了开发商业软件的知识,帮助读者进行“精要”式的学习,汲取Java EE的思想,正确地进行项目实战。 本书特色 不留遗漏——覆盖主流Java EE轻量级框架 直击要害——实战化案例精准定位开发细节 学以致用——精要式项目确保开发/ 学习不脱节 潜移默化——研磨式知识讲解参透技术要点 提升效率——垂直式技术精解不绕弯路 循序提升——渐进式知识点统排确保连贯 以点概面——解决方案式项目,知识独立却又体系完整 成功案例——全面经过项目过程锤炼,提升学习/ 开发效率
DAX设计模式(第2版) 电子书
为Power BI、SQL Server Analysis Services和Power Pivot提供全面的DAX现成解决方案集合。