请稍等 ...
×

采纳答案成功!

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

控制权问题,不主动交控制权就死在这?

如课程所示代码,死在这里?是指死在 ** i=0 **时发起的第一个协程里面吗?连发起第二个协程的机会都没有吗?

func main() {
	var a [10]int
	for i := 0; i < 10; i++ {
		go func(i int) {
			a[i]++
		}(i)
	}
}

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

1回答

FlappyBear 2018-11-30 23:32:02

我单步调试的结果显示协程照样是开了10个,在main函数的fo循环里面main是没有死掉的,在最后的sleep的时候程序才死掉。所以个人觉得在循环里面控制权在main以及各个协程之间调度,但是在sleep的时候主程序一直拿不到控制权导致了程序跪了。

0 回复 有任何疑惑可以回复我~
  • 提问者 小蜗牛不回头 #1
    首先谢谢回答。出了循环 main 也没有 控制权了吗
    回复 有任何疑惑可以回复我~ 2018-11-30 23:42:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信