Три варианта. Первый — обернуть обычную map в структуру с sync.RWMutex: RLock для чтения, Lock для записи. Второй — sync.Map из стандартной библиотеки, но она оптимальна только для специфичных паттернов (read-heavy, ключи стабильные). Третий — шардирование: разбить одну map на N с отдельным мьютексом на каждый шард, распределять по hash(key) % N. Для большинства случаев первый вариант (map + RWMutex) — самый простой и достаточный.
Как сделать потокобезопасную map?
Middle
1.5k просмотровAFK Offer AI
Зачем нужен context в Go?