你能解释一下以下错误:致命错误:
true
true
所有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) } }
Cerise Limón.. 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) } }
playground example
由于通道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