Что такое sync.Map?

Middle
981 просмотров
AFK Offer AI

sync.Map — потокобезопасная map из стандартной библиотеки. Оптимизирована для двух сценариев: ключ записывается один раз и читается много раз, или горутины работают с непересекающимися ключами.

var m sync.Map
m.Store("key", "value")
v, ok := m.Load("key")
m.Delete("key")
m.Range(func(k, v any) bool {
    fmt.Println(k, v)
    return true
})

Не используй sync.Map как замену обычной map + mutex по умолчанию. Для большинства случаев map + sync.RWMutex быстрее. sync.Map хороша при read-heavy нагрузке с редкими записями и большом количестве ядер.

Следующий вопрос

Что такое iota в Go?