Три способа. map + sync.RWMutex: RLock для чтения, Lock для записи — просто и предсказуемо. sync.Map: оптимизирован для read-heavy или disjoint keys, но API менее удобный (Load/Store вместо []). Sharded map: несколько map с отдельными mutex, ключ определяет shard (hash % N). Шардинг уменьшает contention — горутины блокируют только свой shard. Для большинства случаев хватает RWMutex. sync.Map — если профилировщик показал contention. Sharded — для экстрима.
Как реализовать concurrent map?
Middle
268 просмотровAFK Offer AI
Что такое string interning?