内容


不仅仅是另一本并发性图书

为什么 Java Concurrency in Practice 应当位于夏季阅读列表之首

Comments

线程透明世界中的并发性问题

随着诸如 Java EE 5 之类现代组件化服务器端开发框架的到来,似乎不再需要花费数天来处理并发性问题。这些成熟复杂的软件栈接手了危险的线程管理和并发性控制任务,让人们可以只专注于应用程序的业务逻辑。但是,在并发性问题发生时,问题通常是如此紧迫,甚至能击倒项目团队,而且,在一些意外情况下,会毁掉整个项目。更糟的是,因为现在许多人在整个开发人员生命期内都无需担心并发性、饥饿和死锁之类的问题,所以我们通常缺少处理这类问题的能力。

并发性历史

公平地说,对并发性的流行看法,随着时代而变化。最明显的变化是并发性的环境和开发人员对并发性元素拥有的控制程度。

在微处理器革命的早期,重点是使用汇编或编译语言的处理器中断处理和抢占式多任务。随着多任务操作系统(OS)的成熟,以及世界向以 OS API 为核心的环境的转变,OS 管理的同步和进程间通信(IPC)机制成为了主流。随着开发世界转向基于虚拟机的平台(即 Java 和 .Net 平台),更高的应用程序级的并发性控制也成为了必要。这些并发性机制幕后实际实现的低层细节,不论是使用底层的 OS API 还是直接使用硬件中断机制,都变得不太重要了。并发性协约和保证,现在要么来自开发框架(例如 Java EE 5),要么来自平台的 API(例如 java.util.concurrent)。

独特的挑战

在并发性环境发展的每个新阶段,可以从中寻找有效处理问题的智慧的知识池,都有很大的不同。虽然都是在一套相同的熟悉的基本概念元素基础上形成的,但每个阶段都有自己一套独特的挑战。

迎接挑战

所以,一本关于并发性的图书,必须勇敢地面对当前遇到的挑战。它必须捕捉相关的问题模式,并提出可行的解决方案 —— 或者基于当代最佳实践,或者基于过去使用的技术形成基本问题的解决方案。

同样,您会发现关于并发性的书籍非常稀少。它们不仅不是出版商愿意寻找的热门分类,而且适合的读者和愿意花时间研究和编写这类图书的人也极为稀少。

热情的工作

Java Concurrency in Practice 这本书诞生自 Brian Goetz 迎接 Java 开发平台上当前并发性挑战的个人热情。Brian 对这一领域的兴趣和贡献众所周知,而且有很好的记录(请参见 参考资料,阅读他在 developerWorks 上发表的 20 多篇关于并发性的文章),这让他在 Java 并发性社区成为受到高度尊重的人物。

捕捉当代最佳实践和研究智慧

不论一个作者如何聪明,创作一本关于并发性的当代而且实用的图书,都需要来自 Java 平台/应用程序并发性领域中跨部门的参与者提供的最佳实践和可行的解决方案(包括研究和应用两个层次)。除了 Brian 自己的研究、经验和热心读者的贡献之外,本书还吸取了一些并发性前沿人员的真知灼见,包括 Tim Peierls、Joshua Bloch、Joseph Bowbeer、David Holmes 和 Doug Lea。

覆盖范围

Java Concurrency in Practice 中,Brian 从最基本的知识开始介绍。本书分成四部分:

  • 第 1 部分开始时集中于在 Java 平台上创建线程应用程序以及在同步对共享资源的访问时包含的细微之处。贯穿本书都用许多简洁的代码示例演示了问题和可行的解决方案。
  • 第 2 部分研究了 Java SE 5 提供的更高层次的线程执行构造,以及如何最好地把它们应用到现实世界中的不同场景,其中整合了一些观察到的最佳实践和最新的研究主张。
  • 第 3 部分研究了以前其他书籍曾经试图避免的真正的困难问题 —— 解决现实世界的生存保证、性能、可伸缩性和可测试性需求。每个人都认识到在这些领域没有包治百病的解决方案。Brian 把当前的最佳实践调查与相关的研究结果相结合,提供了一些可行的替代方案。
  • 第 4 部分介绍了一些在开发中可能适用的高级并发性技术,包括显式锁、定制同步器、非阻塞同步,还介绍了低级的 Java 内存模型。

可以从完整 目录 了解每章的细节。

结束语

当我们从今天以应用程序为核心的开发平台转移到不远的未来支持多核处理器的操作系统和平台机制时,Java Concurrency in Practice 代表了这个容易出错的领域当前最新的并发性实践和研究。我强烈建议您去购买这本优秀的图书,并阅读它。


下载资源


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Java technology
ArticleID=154032
ArticleTitle=不仅仅是另一本并发性图书
publish-date=08142006