当我决定撰写这本书时,一位朋友提醒我:“你是不是已经忘记了写第一本书时的艰辛?”当时我可能太过乐观,以为写第二本书会容易一些。现在回想起来,如果我不选择这个相对复杂的主题,而是挑选一个更容易处理的话题,我的生活可能会轻松许多。
近年来,并发编程逐渐受到重视,像Go这样的编程语言也提供了很好的支持,使得并发编程成为越来越多人关注的焦点。本书延续了《七周七语言》的写作风格,通过七个精心挑选的模型帮助读者了解并发编程的基本概念:线程与锁、函数式编程、Clojure、Actor、通信顺序进程、数据级并行和Lambda架构。每章的内容被设计为三天的阅读量,每天阅读结束后都会有相关的练习,以巩固和扩展当天学到的知识。每章还包括总结部分,概括该模型的优点和缺点。
本书适合所有对并发编程感兴趣的程序员。
本书的每一章都设计为三天的阅读量,每天阅读结束后都会有相关的练习,以巩固和扩展当天学到的知识。每章还设有复习部分,总结该模型的优点和缺点。尽管书中包含大量具有哲学意味的讨论,但本书仍然侧重于实践。强烈建议读者在阅读示例代码时亲自动手实践,因为没有什么比代码更有说服力。
需要获取本书的读者,可以通过分享并关注后私信(666)或(111)免费获得本书的所有内容。
本书中讨论的所有示例代码都可以从本书的官方网站下载。每个示例都包括源代码和构建系统。对于不同语言,本书采用了最通用的构建系统:Java使用Maven,Clojure使用Leiningen,Elixir使用Mix,Scala使用sbt,C使用GNU Make。大多数情况下,构建系统不仅会编译代码,还会下载所需依赖。对于第7章中的C代码,需要根据操作系统的不同安装相应的OpenCL工具包(除非您使用的是Mac,因为Xcode会自动解决这些问题)。
本书中的构建系统均在命令行下进行了测试。如果您是熟练的IDE用户,应该知道如何将构建系统导入到IDE中。大多数IDE都能很好地兼容Maven,主流IDE也有兼容sbt和Leiningen的插件。不过,由于我没有在IDE中进行测试,因此使用命令行可能会更加简便。
本书并非语言参考手册,我们使用了一些较新的语言,如Elixir和Clojure,但重点在于并发编程而非具体语言。如果您希望通过上下文了解这些语言的主要特性,建议您自行查阅语言参考手册。本书也不是安装手册,要运行本书的示例代码,需要安装和配置相应的工具。本书所有的示例都采用了主流工具编写,如果遇到问题,您可以在网上找到许多帮助资源。此外,本书也不是面面俱到的指南,无法涵盖所有议题的每一个细节。对于某些议题,本书可能会一笔带过或者完全不涉及。在某些章节中,我会故意使用一些不规范的代码,以便不熟悉该语言的读者更容易理解代码。如果您有意深入了解本书中的某项技术,建议您阅读书中提到的相关权威资料。
书中内容展示完毕,如需获取完整内容,请通过分享并关注后私信(666)或(111)免费获取。