浅谈Go Channel 高级实践
channel 是 golang 里相当有趣的一个功能,在我使用 golang 编码的经验里,大部分事件都会是在享受 channel 和 goroutine 配合的乐趣。所以本文主要介绍 channel 的一些有趣的用法。这里有 Oling Cat 翻译的Go编程语言规范里关于 channel(信道)的描述:。事实上,可以认为 channel 是一个管道或者先进先出队列,非常简单且轻量。channel 并不是 Golang 首创的。channel 实现的源码不复杂,推荐阅读,意义:channel 是用来通信的实际上:核心:需要通信的地方例如以下场景:。channel 不是用来实现锁机制的,虽然有些地方可以用它来实现类似读写锁,保护临界区的功能,但不要这么用!超时控制比较常见的一个场景是重试,第一个请求在指定超时时间内没有返回结果,这时重试第二次,取两次中最快返回的结果使用。
下载地址
用户评论