func main() {
runtime.GOMAXPROCS(1)
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
fmt.Println("a")
}()
go func() {
defer wg.Done()
fmt.Println("b")
}()
wg.Wait()
}
为什么总是先打印b后打印a, groutine首次执行有顺序吗?
有疑问加站长微信联系(非本文作者)

为什么非得做这样的试验呢?没啥意义,而且结果跟编译器实现有关!
确实没必要纠结,如果在乎顺序就明确用channel同步,不在乎顺序管它谁先执行