Обычная map с mutex даёт типизацию и понятную защиту составных операций. sync.Map полезна не для любого кэша и не заменяет проектирование его инвариантов.
Почему ты выбрал map для кэша, а не sync.Map?
Обычная map с mutex даёт типизацию и понятную защиту составных операций. sync.Map полезна не для любого кэша и не заменяет проектирование его инвариантов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Обычная map с mutex даёт типизацию и понятную защиту составных операций. sync.Map полезна не для любого кэша и не заменяет проектирование его инвариантов.
Для кэша часто нужно согласованно обновлять значение, срок жизни, размер и порядок вытеснения. Один lock вокруг связанного состояния может быть проще и корректнее. sync.Map стоит рассматривать при подходящем профиле доступа и измеренном выигрыше. Ни один вариант сам по себе не добавляет TTL, ограничение памяти или защиту от одновременной загрузки одного ключа.