Go (Golang) 并发编程:实战指南
Go (Golang) 并发编程:实战指南
简介:
《Go (Golang) 并发编程》是一本完整的实战指南,将帮助您掌握 Go 编程语言中最强大但也最复杂的主题之一。并发内置于 Go 的架构之中,不理解并发就无法创建高效、快速且可扩展的应用程序。本书将引导您从基础到生产系统中使用的高级模式。
本书内容
本书从基本概念开始:什么是 goroutine,它们与操作系统线程有何不同,channel(缓冲和非缓冲)如何工作,以及如何使用互斥锁和原子操作正确同步数据访问。您将学习如何避免竞态条件和死锁。然后,作者将转向更复杂的主题:
- 使用
select和超时的模式 - 数据管道(pipeline)的组织
- 通过
sync.WaitGroup和errgroup管理 goroutine 组 - 使用工作池控制并发
- 上下文(context)和操作取消
- 高级同步原语:
sync.Once、sync.Pool、sync.Cond - 使用
go test -race测试并发代码
本书适合谁
本书将有助于:
- 已经掌握语言语法并希望了解如何编写高效多线程程序的 Go 初学者
- 从其他语言(Java、C#、Python)转向 Go 并希望学习其独特并发模型的经验丰富的程序员
- 构建高负载服务、微服务、Web 服务器和实时系统的后端开发人员
- 对并行编程感兴趣并希望学习最佳实践的学生和所有人
阅读后您将学到什么
学习完材料后,您将能够:
- 正确设计并发架构,避免常见错误
- 有效使用 goroutine 和 channel 进行数据传输和同步
- 编写可靠、免受数据竞争和死锁影响的代码
- 应用高级模式:fan-in、fan-out、or-done、tee-channel、bridge-channel
- 通过 context 和优雅关闭将并发集成到实际项目中
- 分析和调试并发代码
本书包含大量代码示例,您可以立即运行和修改。所有示例都附有详细的注释和说明。这不仅仅是理论——这是一本实战指南,将成为您 Go 并发编程的桌面参考书。
本书作者是 Alexey Kuznetsov,一位拥有 10 年经验的高级后端开发人员,其中最近 6 年他在高负载项目中用 Go 编程。Alexey 以其在 Go 社区会议上的演讲和一系列关于并发编程的文章而闻名。