推荐序
欣闻文海的《Java多线程编程实战指南》一书即将出版,我感到非常激动和兴奋。与文海相识于2014年,某一天InfoQ中文站的运营编辑给我转发了一封读者投稿邮件,稿件标题是“Java多线程编程模式实战指南之Active Object模式”。读完之后我立刻决定将其发布到InfoQ中文站上,因为这篇文章无论内容选取、技术方向还是文字水平都是我见过的上乘之作。文章在发布后也收到了很多读者的反馈,而该文章的作者正是文海。此后,文海又在InfoQ中文站上连载了多篇与Java多线程编程与设计模式相关的文章,这些文章均获得了不错的读者评价。
本书是文海多年工作经验的总结之作。众所周知,目前Java并发领域的经典好书大部分都是外版作品。不过值得欣喜的是,近一两年来,也有一些不错的国内开发者开始编写这个领域的图书,这些图书的口碑也相当不错。文海的这部著作针对Java并发编程但又不局限于这个领域,它将Java多线程编程与设计模式这两大主题有机地结合到了一起。实际上,目前市场上虽然既有关于Java多线程编程的图书,也有关于设计模式的图书,但这两类图书内容之间却难以产生交集。介绍Java多线程编程的图书会专门讲解多线程编程的方方面面,而介绍设计模式的图书一般会以经典的23个设计模式为蓝本,同时辅以一些简单的代码示例进行解读,但难以让读者真正领会设计模式在实际开发中所起的作用。而本书不仅深入透彻地分析了Java多线程编程的方方面面,还将其与设计模式有机地结合到了一起,介绍了主动对象模式、两阶段终止模式、生产者/消费者模式、流水线模式、线程池模式等会对实际项目开发起到积极指导作用的诸多模式。可以这么说,本书不仅会向大家介绍Java多线程编程的难点与重点,还会探讨在某些场景下该使用哪个模式,以及这样做会给项目带来什么好处。从这个意义上说,本书是Java多线程编程与设计模式理论的集大成者,相信会给广大的Java开发者带来切实的帮助。
目前已经是多核普及的时代,程序员也一定会编写面向多核的代码。虽然传统的SSH(特指Struts+Spring+Hibernate)依然在发挥着重要的作用,但不得不说的是,作为一名有追求的Java开发者,眼光不应该局限于此。每一名有理想的Java开发者都应该系统地学习有关多线程编程的知识,这不仅涉及程序语言与库的学习,还需要了解现代硬件体系架构(如CPU、缓存、内存等),同时辅以恰当的设计模式,这样才能在未来游刃有余、得心应手。
虽然本人已经出版过多本技术图书,但为别人的书作序还是第一次。因此,在写这篇序之前我通读了本书的全部内容。事实也印证了看书之前的猜想,文海的这本书绝对是他本人的心血之作,书中诸多的实际经验相信会给读者带来不一样的感受。诚然,目前与Java开发相关的技术图书已然汗牛充栋,但我相信,这本书应该是每一个对代码有追求、对模式有见地的读者书架上不可或缺的一本书。
InfoQ中文站Java主编 张龙
2015年9月14日于北京