并发模式与应用实践

[印度] 阿图尔·S.科德(Atul S.Khot)
译者序 并发能极大地整合和提高系统的计算性能,特别在以大数据、云计算为特征的信息时代,关于并发的学习和实践具有重大意义。然而,要学好并发,需要遵循一定的章法、范式,这就是并发模式。掌握好并发模式,将使读者的并发设计及开发能力如虎添翼。不过,要掌握好并发模式并能付诸实践,也并非易事。所幸的是,这本书的横空出世为读者学习并发带来了福音。 Atul S.Khot作为一名自学成才的优秀程序员,有丰富的编程经验和对设计模式的深入研究和深刻洞见。本书通俗易懂,理论与实践紧密结合,书中给出的代码简练、质量高,配图也直观明了、贴近生活。本书对于渴望学习并发模式并希冀能快速实践的读者,将会带来立竿见影的效果。 本书的翻译得到了同行、老师、学生和朋友的帮助与鼓励,在此表示真挚的谢意,特别感谢甘健侯、张姝、李佳蓓、张利明以及姚贤明。书中的文字与内容力求忠实于原著,但由于译者水平有限,加上时间仓促,译文中难免有疏漏之处,敬请读者批评指正。 徐坚 2019年1月于昆明 前言 感谢你购买本书!我们生活在一个并发的世界中,并发编程是一项越来越有价值的技能。 我还记得当我理解了UNIX shell管道的工作原理的那一刻,便立即对Linux和命令行“一见钟情”,并尝试了许多通过管道连接的组合过滤器(过滤器是一种程序,它从标准输入设备读取数据,再写入标准输出设备)。我一直都在和并发程序打交道,我对命令行的创造性和力量感到很惊讶。 后来,由于项目变化,我致力于用多线程范式编写代码。所使用的编程语言是我钟爱的C或C++,然而,令我惊讶的是,我发现维护一个用C/C++编写的多线程遗留代码库是一项艰巨的任务。这是因为共享状态是随意管理的,一个小错误就可能让我们陷入调试噩梦! 大约在那个时候,我开始了解面向对象设计模式和一些多线程模式。例如,我们希望将一个大的内存数据结构安全地显露给多个线程。我读过有关reade…