你能解释一下下面的错误吗:fatal error:truetrueall goroutines are sleep - deadlock!package mainimport ( "fmt")func printer(ch chan bool) { ch <- true}func main() { var c chan bool = make(chan bool, 2) for i := 0; i < 5; i++ { go printer(c) } for i := range c { fmt.Println(i) }}
1 回答
jeck猫
TA贡献1909条经验 获得超7个赞
因为通道c没有关闭,所以范围循环不会退出。此代码不会阻塞:
func main() {
var c chan bool = make(chan bool, 2)
for i := 0; i < 5; i++ {
go printer(c)
}
for i := 0; i < 5; i++ {
fmt.Println(<-c)
}
}
playground example
- 1 回答
- 0 关注
- 139 浏览
添加回答
举报
0/150
提交
取消