浏览 101
更新于 2020-08-29 08:47
作为一门 21 世纪的语言,Go 原生支持应用之间的通信(网络,客户端和服务端,分布式计算,参见第 15 章)和程序的并发。程序可以在不同的处理器和计算机上同时执行不同的代码段。Go 语言为构建并发程序的基本代码块是 协程 (goroutine) 与通道 (channel)。他们需要语言,编译器,和runtime的支持。Go 语言提供的垃圾回收器对并发编程至关重要。
不要通过共享内存来通信,而通过通信来共享内存。
通信强制协作。
目录
- 14.1. 并发、并行和协程
- 14.2. 协程间的信道
- 14.3. 协程的同步:关闭通道-测试阻塞的通道
- 14.4. 使用 select 切换协程
- 14.5. 通道、超时和计时器(Ticker)
- 14.6. 协程和恢复(recover)
- 14.7. 新旧模型对比:任务和worker
- 14.8. 惰性生成器的实现
- 14.9. 实现 Futures 模式
- 14.10. 多路复用
- 14.11. 限制并发数
- 14.12. 链式操作
- 14.13. 多核运算
- 14.14. 多核运算处理大量数据
- 14.15. 漏桶算法 Leaky Bucket
- 14.16. 标杆分析 Goroutines
- 14.17. 使用 Channel 来并发读取对象