慕妹2184772
2020-06-08 11:50
func main() { ch := make(chan string) for i := 0; i < 300; i++ { go PrintHello(i, ch) } for { msg := <-ch fmt.Println(msg) } } func PrintHello(i int, ch chan string) { ch <- fmt.Sprintf("print %d\n", i) }
运行后:
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan receive]:
main.main()
~/simpleGoRoutine.go:15 +0xa1
print 0
print 2
...
第二个for 从管道中取数据 取完后仍然会取到0值
搭建并行处理管道,感受GO语言魅力
19375 学习 · 78 问题
相似问题