注释掉runtime.Gosched()后,没有起作用

go_hl · · 876 次点击
#代码1 ``` func main() { var a [10]int for i := 0; i < 10; i++ { go func(j int) { for { a[j]++ } }(i) } time.Sleep(time.Millisecond) //1毫秒 fmt.Println(a) } ```
#1
更多评论
#代码2 ``` func main() { var a [10]int for i := 0; i < 10; i++ { go func(j int) { for { a[j]++ runtime.Gosched() } }(i) } time.Sleep(time.Millisecond) //1毫秒 fmt.Println(a) } ```
#2
#代码3 ``` func main() { var a [10]int for i := 0; i < 10; i++ { go func(j int) { for { a[j]++ //runtime.Gosched() } }(i) } time.Sleep(time.Millisecond) //1毫秒 fmt.Println(a) } ``` 将代码2中的“runtime.Gosched() ”,如代码3,程序执行后的效果,应该是无法停止,一直运行着,除非手动停止。但实际上,效果如代码2执行的效果,跟没有注释掉“runtime.Gosched() ”一样。这是为什么?
#3