控制权问题,不主动交控制权就死在这?
来源: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的时候主程序一直拿不到控制权导致了程序跪了。
012018-11-30
相似问题