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 нагрузке с редкими записями и большом количестве ядер.