// You can edit this code!
// Click here and start typing.
package main
import (
"fmt"
"runtime"
"time"
)
func main() {
runtime.GOMAXPROCS(1)
for i := 0; i < 10; i++ {
go func(a int) {
fmt.Println(a)
}(i)
}
time.Sleep(time.Second)
}
9
0
1
2
3
4
5
6
7
8
这样的输出结果是怎么调度的? 是最新创建的协程优先执行,最新就会输出9,之后就优先调度执行等待时间最久的吗?
有疑问加站长微信联系(非本文作者)
【谷歌工程师讲Golang调度器-哔哩哔哩】 https://b23.tv/0uggAqn
不管它是怎么调度的,你都不应该拿这个做为你程序逻辑的规则;因为你不知道它哪天就改了。