Конкурентная запись в map — что будет?

Middle+
1.9k просмотров
AFK Offer AI

Panic. Go runtime детектит concurrent map writes и крашит программу: fatal error: concurrent map writes. Это не race condition — это специальная проверка в runtime.

Решения: sync.RWMutex (RLock для чтений, Lock для записей), sync.Map (оптимизирован для read-heavy сценариев и случаев когда ключи стабильны), или шардированная мапа (несколько мап + мьютексов, шард по хешу ключа).

Для большинства случаев sync.RWMutex — лучший выбор. sync.Map работает с any, что менее type-safe.

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

Что такое Docker?