关于Goroutine执行顺序

下面这段代码在设置了GOMAXPROCS为1后,为什么执行的结果是先打印出b,再打印出a,难道不是顺序执行吗?(go 版本:1.8)


func main() {
runtime.GOMAXPROCS(1)
var wg sync.WaitGroup
wg.Add(2)
go func() {
fmt.Println("a")
wg.Done()
}()
go func() {
fmt.Println("b")
wg.Done()
}()
wg.Wait()
}
已邀请:

yate1996

赞同来自:

同问~

SunisDown - @douban

赞同来自:

不是顺序执行。

TavenLi

赞同来自:

在只有一个CPU工作的时候,永远是最后一个先执行
剩下的按顺序执行
怪怪的

要回复问题请先登录注册