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

来源:10-1 goroutine

小蜗牛不回头

2018-11-30

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

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

1回答

FlappyBear

2018-11-30

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

0
1
小蜗牛不回头
首先谢谢回答。出了循环 main 也没有 控制权了吗
2018-11-30
共1条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程