Sobes.tech
Junior — Senior
51

Несинхронный доступ к map из нескольких горутин

Условие задачи

Определите, какой вывод появится в консоли, учитывая, что несколько горутин одновременно записывают значения в обычный map без какой‑либо синхронизации. Обратите внимание на возможные последствия гонки данных.

func main() {
    data := make(map[int]bool)
    for i := 0; i < 10; i++ {
        go func() {
            data[i] = true
        }()
    }

    time.Sleep(time.Second * 5)
    for k, v := range data {
        fmt.Println(k, v)
    }
}