控制权问题确实没法重现,windows10,go版本 1.13.7

来源:10-1 goroutine

JToGo

2020-02-08

测试代码如下:

func main(){
	var a [10]int
	for i:=0;i<10;i++{
		go func(i int) {
			for{
				a[i]++
			}
		}(i)
	}
	time.Sleep(time.Millisecond)
	fmt.Print(a)
}

代码对比来看时一样的

写回答

1回答

ccmouse

2020-02-09

的确有观察到各种现象。这段代码本身结果就是不确定的。

不过传递的知识点是我们在goroutine里面需要主动让出控制权,像这里for里不交出控制权是不对的。

0
0

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

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

5995 学习 · 1909 问题

查看课程