У меня очень простой код go:
var wg sync.WaitGroup
func main() {
for i := 0; i < 100; i++ {
wg.Add(1)
go func(i int) {
fmt.Printf("No %d goroutine begin\n", i)
fmt.Printf("No %d goroutine is done\n", i)
wg.Done()
}(i)
}
wg.Wait()
}
На моем локальном компьютере с 12-ядерным процессором этот код будет выводиться случайным образом, как и ожидалось.Но когда я запускаю код в go игровой среде , я получаю неожиданный результат.Я знаю, что игровая площадка Go использует только одно ядро для запуска кода, поэтому ожидаемый вывод должен быть один за другим из Нет 0 начало 0 , но оно всегда начинается с последнего числа Нет 9 начало начала.Это правильно или я что-то упустил?