Cache: RWMutex для чтений
Справочник метаданных читают часто, обновляют редко. Реализуйте Cache с Get (RLock/RUnlock) и Set (Lock/Unlock).
Показать решение
GolangРешение
func (c *Cache) Get(k string) string {
c.mu.RLock()
defer c.mu.RUnlock()
return c.m[k]
}
func (c *Cache) Set(k, v string) {
c.mu.Lock()
defer c.mu.Unlock()
if c.m == nil {
c.m = make(map[string]string)
}
c.m[k] = v
}Записаться на разбор
10 000 ₽ · 60 минут · онлайн