var wg sync.WaitGroup
func p(n int){
defer wg.Done()
fmt.Println(n)
}
func main(){
wg.Add(5)
for i:=0;i<20;i++{
go f(i)
}
}
老师好,像图中这么写。i最大为20,wg的控制数量为5个,这样的代码我运行了,发现每次能打印出来6~7个数字,请问这是为什么呢?
还有,如果我把i最大改成3个,会提示:
fatal error:all goroutine are sleep --deadlock!
请问上述两个问题的原因。谢谢老师!