🟡 Средний · 2 очк. Разное / продвинутое
Что такое sync.Map?
A Обычная map
B Потокобезопасная map
C Упорядоченная map
D Map с TTL
Объяснение вопроса

sync.Map - это конкурентно-безопасная map из стандартной библиотеки. Её можно использовать из нескольких горутин без внешнего мьютекса.

Отличие от map + Mutex

Обычная map не thread-safe: при одновременной записи или записи с чтением - fatal error. sync.Map решает эту задачу внутри, но с другой моделью API и характеристиками.

var m sync.Map
m.Store("key", 42)
v, ok := m.Load("key")       // 42, true
m.Delete("key")
v, loaded := m.LoadOrStore("key", 100)

Когда использовать

Оптимизирована для случаев: ключи в основном только растут (или редко меняются), много чтений, мало записей. Для "обычной" конкурентной map с равным числом чтений и записей часто выгоднее map + sync.RWMutex.

  • Store, Load, Delete, LoadOrStore, Range
  • Нет привычного m["k"] = v - только методы
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.