你能解釋一下下面的錯誤嗎: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 關注
- 159 瀏覽
添加回答
舉報
0/150
提交
取消