下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
读书 > 编程语言 >Java > Java多线程编程实战指南(设计模式篇)

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

综合评级:★★★★★

定价:59.00

作者:黄文海 著

出版社:电子工业出版社

出版日期:2015年9月

页数:262

字数:381000

ISBN:9787121270062

书籍介绍
随着CPU 多核时代的到来,多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。而解决多线程编程中频繁出现的普遍问题可以借鉴设计模式所提供的现成解决方案。然而,多线程编程相关的设计模式书籍多采用C++作为描述语言,且书中所举的例子多与应用开发人员的实际工作相去甚远。本书采用Java(JDK1.6)语言和UML 为描述语言,并结合作者多年工作经历的相关实战案例,介绍了多线程环境下常用设计模式的来龙去脉:各个设计模式是什么样的及其典型的实际应用场景、实际应用时需要注意的事项以及各个模式的可复用代码实现。
相关课程
目录
第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-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(承诺)模式

第7章 Producer-Consumer(生产者/消费者)模式

第8章 Active Object(主动对象)模式

第9章 Thread Pool(线程池)模式

第10章 Thread Specific Storage(线程特有存储)模式

第11章 Serial Thread Confinement(串行线程封闭)模式

第12章 Master-Slave(主仆)模式

第13章 Pipeline(流水线)模式

第14章 Half-sync/Half-async(半同步/半异步)模式

第15章 模式语言

附录A 本书常用UML图指南

参考文献

前言
前言

  随着现代CPU的生产工艺从提升CPU主频频率转向多核化,即在一块芯片上集成多个CPU内核(Core),以往那种靠CPU自身处理能力的提升所带来的软件计算性能提升的那种“免费午餐”不复存在。在此背景下,多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。然而,多线程编程并非一个简单地使用多个线程进行编程的数量问题,其又有自身的问题。好比俗话说“一个和尚打水喝,两个和尚挑水喝,三个和尚没水喝”,简单地使用多个线程进行编程可能导致更加糟糕的计算效率。

  设计模式相当于软件开发领域的“三十六计”,它为特定背景下反复出现的问题提供了一般性解决方案。多线程相关的设计模式为我们恰当地使用多线程进行编程并达到提升软件服务质量这一目的提供了指引和参考。当然,设计模式不是菜谱,即便是菜谱我们也不能指望照着菜谱做就能做出一道美味可口的菜肴,但我们又不能因此而否认菜谱存在的价值。

  可惜的是,国外与多线程编程相关的设计模式书籍多数采用C++作为描述语言,且书中所举的例子又多与应用开发人员的实际工作经历相去甚远。本书作为国内**本多线程编程相关设计模式的原创书籍,希望能够为Java开发者普及多线程相关的设计模式开一个头。

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

  本书第1章对多线程编程基础进行了回顾,虽然该章讲的是基础但重点仍然是强调“实战”。所谓“温故而知新”,有一定多线程编程基础、经验的读者也不妨快速阅读一下本章,说不定有新的收获。

  本书第3章到第14章逐一详细讲解了多线程编程相关的12个常用设计模式。针对每个设计模式,相应章节会从以下几个方面进行详细讲解。

  模式简介。这部分简要介绍了相应设计模式的由来及其核心思想,以便读者能够快速地对其有个初步认识。

  模式的架构。这部分会从静态(类及类与类之间的结构关系)和动态(类与类之间的交互)两个角度对相应设计模式进行详细讲解。模式架构分别使用UML类图(Class Diagram)和序列图(Sequence Diagram)对模式的静态和动态两个方面进行描述。

  实战案例解析。在相应设计模式架构的基础上,本部分会给出相关的实战案例并对其进行解析。不同于教科书式的范例,实战案例强调的是“实战”这一背景。因此实战案例解析中,我们会先提出实际案例中我们面临的实际问题,并在此基础上结合相应设计模式讲解相应设计模式是如何解决这些问题的。实战案例解析中我们会给出相关的Java代码,并讲解这些代码与相应设计模式的架构间的对应关系,以便读者进一步理解相应设计模式。为了便于读者进行实验,本书给出的实战案例代码都力求做到可运行。实战案例解析有助于读者进一步理解相应的设计模式,并体验相应设计模式的应用场景。建议读者在阅读这部分时先关注重点,即实战案例中我们要解决哪些问题,相应设计模式又是如何解决这些问题的,实战案例的代码与相应设计模式的架构间的对应关系。而代码中其与设计模式非强相关的细节则可以稍后关注。

  模式的评价与实现考量。这部分会对相应设计模式在实现和应用过程中需要注意的一些事项、问题进行讲解,并讨论应用相应设计模式所带来的好处及缺点。该节也会讨论相应设计模式的典型应用场景。

  可复用实现代码。这部分给出相应设计模式的可复用实现代码。编写设计模式的可复用代码有助于读者进一步理解相应设计模式及其在实现和应用过程中需要注意的相关事项和问题,也便于读者在实际工作中应用相应设计模式。

  Java标准库实例。考虑到Java标准库的API设计过程中已经应用了许多设计模式,本书尽可能地给出相应设计模式在Java API中的应用情况。

  相关模式。设计模式不是孤立存在的,一个具体的设计模式往往和其它设计模式之间存在某些联系。这部分会描述相应设计模式与其它设计模式之间存在的关系。这当中可能涉及GOF的设计模式,这类设计模式并不在本书的讨论范围之内。有需要的读者,请自行参考相关书籍。

热门图书
推荐新闻
技术文库
论坛推荐