• 14 协程(goroutine)与通道(channel)
    • 链接

    14 协程(goroutine)与通道(channel)

    作为一门 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 模式