Не получил ожидаемый результат на игровой площадке Go - PullRequest
0 голосов
/ 24 января 2019

У меня очень простой код 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 начало начала.Это правильно или я что-то упустил?

1 Ответ

0 голосов
/ 24 января 2019

На игровой площадке Go есть измененный планировщик и другие специальные функции.

Блог Go: внутри игровой площадки Go

Игровая площадка Go : О

...