内容推荐 众所周知,构建正确的并发程序并不容易,但幸运的是,Go语言这门开源编程语言使编写并发程序变得简单并易于处理。如果你是熟悉Go语言的开发者,《Go语言并发之道》这本书非常实用,它展示了在你系统中融入并发特性的最佳实践和模式。 本书作者凯瑟琳带你一步一步深入这些方法。你将理解Go语言为何选定这些并发模型,这些模型又会带来什么问题,以及你如何组合利用这些模型中的原语去解决问题。学习那些让你在独立且自信的编写与实现任何规模并发系统时所需要用到的技巧和工具。 理解Go语言如何解决并发难以编写正确这一根本问题。 学习并发与并行的关键性区别。 深入到G0语言的内存同步原语。 利用这些模式中的原语编写可维护的并发代码。 将模式组合成为一系列的实践,使你能够编写大规模的分布式系统。 学习goroutine背后的复杂性,以及Go语言的运行时如何将所有东西连接在一起。 作者简介 Katherine Cox-Buday(凯瑟琳)是一名计算机科学家,目前工作于Simpie onlinebanking。她的业余爱好包括软件工程、创作、Go语言,以及音乐,这些都是她长期的追求,并且有着不同层面的贡献。 目录 前言 第1章 并发概述 摩尔定律,Web Scale和我们所陷入的混乱 为什么并发很难? 竞争条件 原子性 内存访问同步 死锁、活锁和饥饿 确定并发安全 面对复杂性的简单性 第2章 对你的代码建模:通信顺序进程 并发与并行的区别 什么是CSP 如何帮助你 Go语言的并发哲学 第3章 Go语言并发组件 goroutine sync包 WaitGroup 互斥锁和读写锁 Cond Once 池 channel select语句 GOMAXPROCS控制 小结 第4章 Go语言的并发模式 约束 for-seIect循环 防止goroutine泄漏 or-channel 错误处理 pipeline 构建pipeline的最佳实践 一些便利的生成器 扇入,扇出 or-done-channel tee-channel 桥接channel模式 队列排队 context包 小结 第5章 大规模并发 异常传递 超时和取消 心跳 复制请求 速率限制 治愈异常的goroutine 小结 第6章 goroutine和Go语言运行时 工作窃取 窃取任务还是续体 向开发人员展示所有这些信息 尾声 附录A
|