您能否解释以下错误:致命错误:
真
真
所有的goroutines都睡着了 - 僵局!
package main
import (
"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)
}
}
答案 0 :(得分:5)
由于通道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)
}
}