第三部分 并发编程

终于到了为大家讲解怎样用 Go 语言编写并发程序的时候了。并发编程是本书的主题,更是当今开发服务器端软件必会涉及的一个重要话题,尤其是在互联网领域。本部分共分为 3 章。

我们会从并发编程的历史开始讲起。从多进程编程到多线程编程,再到 Go 语言的并发编程模型,我们会讲述它们的特点并进行对比。Go 语言对多进程编程实际上也是有支持的。在这方面,我们会重点讲解它对 Socket 的强力支持。虽然 Go 语言拥有自己的并发编程模型,但是它的根基还是操作系统的线程模型。所以,我们还是会在第 6 章讲述一些多线程编程方面的知识,同时也会指出当今主流的并发编程模型的不足之处。当然,我们会在该章的最后详细地讲述Go语言的并发编程模型。

在第 7 章,我们会重点讲解 Go 语言并发编程模型中与应用程序联系最紧密的两个组件(或者说工具)——Goroutine 和 Channel 的使用方法和技巧。在这一章的最后,我们还会用代码说话,带领大家编写一个真实完整、开箱即用的示例程序。

虽然 Go 语言并不推荐以同步的方式在并发环境中共享数据和建立通讯,但是它还是提供了一些同步工具让我们选用,第 8 章会介绍这部分内容。这些同步工具在一些应用场景下还是很有用的。同样的,我们也会以一个示例程序结束这一章的内容。

好了,现在让我们进入主题。