【发布时间】:2019-06-05 10:55:56
【问题描述】:
我想知道为什么语言中存在长度为零的缓冲通道。根据我的经验,它们似乎只会产生僵局。到底有没有用?
【问题讨论】:
-
无缓冲通道允许通过交换一个值来同步两个 goroutine。
-
实际上,在 Go 中编程时的经验法则是,如果让通道缓冲解决了问题,那么您就有了逻辑错误。缓冲通道确实有用途(实际上是两种用途),但大多数时候您应该开始使用无缓冲通道。
-
“长度为零的缓冲通道”不存在。如果它的长度为零,则根据定义,它是无缓冲的。