【发布时间】:2014-01-30 19:24:42
【问题描述】:
有人可以解释一下,为什么如果通道被缓冲,程序不会以 fatal_error 退出?
无缓冲通道
package main
func main() {
c := make(chan int)
c <- 3
}
fatal error: all goroutines are asleep - deadlock!
缓冲通道
package main
func main() {
c := make(chan int, 1)
c <- 3
}
[no output]
Program exited.
谢谢!
【问题讨论】:
-
我认为这是因为缓冲和非缓冲通道之间的差异。在缓冲通道中,发送方等待接收方(在本例中为自身)获取数据。但我不确定..
标签: go