用chan接收數(shù)據(jù)后,打印輸出會出現(xiàn)deadlock
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) }
運(yùn)行后:
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan receive]:
main.main()
~/simpleGoRoutine.go:15 +0xa1
print 0
print 2
...
2020-06-18