Sobes.tech
Junior — Senior
67

Одновременное чтение и запись в map в Go

Компании, где спрашивали:

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

Что происходит, если из разных горутин одновременно выполнять операции чтения и записи в map? Появятся ли ошибки, и существуют ли какие‑либо ограничения?

var data = map[string]int{"a": 1}

func main() {
    go reader()
    time.Sleep(1 * time.Second)
    go writer()
    time.Sleep(1 * time.Second)
}

func reader() {
    for {
        fmt.Println(data["a"])
    }
}

func writer() {
    for {
        data["a"] = 2
    }
}