请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

wg数量问题

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!

请问上述两个问题的原因。谢谢老师!

正在回答 回答被采纳积分+3

1回答

bobby 2020-11-24 10:53:54

13-9中我会讲解go语言中为什么会出现各种deadlock

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号