译者序

译者序

Java是一门非常强大的编程语言,特色突出,性能卓越,几乎在你说得出名称的所有计算平台上,都或多或少会浮现出Java的影子。当初Sun公司在推出Java之际就将其作为一种开放式的编程语言,这无疑为Java注入了永久的生命力,也绝对是一个足以对人类社会进步产生重大影响的伟大决定。

Java并发API显然只是Java提供的一部分功能。然而到现在,在历经多次修改和丰富后,它已经强大到每个程序员都应予以高度重视的程度。在Java的每个版本中,并发API提供给程序员的功能都在增加。本书是近年来不可多得的一本专门介绍Java并发编程的图书,对于致力于Java大型程序设计、并行计算、分布式计算和大数据分析处理等方向的科研人员和工程人员来说,它值得一读。可以说本书是从并发处理的视角来探讨Java编程,也可以说是从Java的视角探讨并发处理。要阅读本书,需要预先了解Java语言的一些基础知识,需要有一些基本的Java程序设计经验,最好还了解一些并行计算或者数据处理的相关技术。译者不建议Java语言的初学者直接学习本书。

当2016年本书第1版(《精通Java 8并发编程》)刚出版时,图灵公司就敏锐洞察到本书的价值,并立即开始组织翻译工作。遗憾的是,此后不久官方就宣布了Java 9即将发布的消息。2017年,Java 9正式发布后,作者迅速推出了针对Java 9并发编程的第2版图书,因此原书第1版虽然已经翻译完成,但是最终没能跟读者见面。

在第2版中,作者修订了原书第1版的若干错误,更换了部分演示代码,增删了部分章节,使全书内容更具系统性,同时也增加和融入了Java 9的一些新特性。该书的主要特点如下。

  • 第一,脉络清晰,内容全面。从执行器框架到流API,从并发数据结构到同步机制,从程序设计到调试测试,基本上所有与并发程序设计相关的内容都有所涉及。全书主线明晰,阅读起来比较轻松。
  • 第二,语言通俗,举例充分。教科书式的语言相对较少,原理通俗易懂,实例简洁明了。几乎针对每个重要的知识点都提供了足够的代码示例,使得学习和练习都很方便。
  • 第三,面向应用,便于上手。作者的视角并不是停留在并发编程本身,而是在于如何使用并发编程解决实际问题以及提高处理效能。读者不需要深陷于原理本身,宜结合实际各取所需,而且书中的示例也都很实用。

从第1版到第2版,本书的翻译过程冗长而艰苦,同时也让译者获益良多,但是限于译者水平,译文之中难免会出现一些错漏之处,敬请读者海涵。图灵公司的多位编辑在本书的翻译过程中给予了指导,为本书耗费了大量心血,在此一并表示感谢。

目录

  • 版权声明
  • 译者序
  • 前言
  • 第 1 章 第一步:并发设计原理
  • 第 2 章 使用基本元素:Thread和Runnable
  • 第 3 章 管理大量线程:执行器
  • 第 4 章 充分利用执行器
  • 第 5 章 从任务获取数据:Callable接口与Future接口
  • 第 6 章 运行分为多阶段的任务:Phaser类
  • 第 7 章 优化分治解决方案:Fork/Join框架
  • 第 8 章 使用并行流处理大规模数据集:MapReduce模型
  • 第 9 章 使用并行流处理大规模数据集:MapCollect模型
  • 第 10 章 异步流处理:反应流
  • 第 11 章 探究并发数据结构和同步工具
  • 第 12 章 测试与监视并发应用程序
  • 第 13 章 JVM中的并发处理:Clojure、带有GPars库的Groovy以及Scala