Справочник метаданных читают часто, обновляют редко. Реализуйте Cache с Get (RLock/RUnlock) и Set (Lock/Unlock).
- Задача
- Решение
- Обсуждение
Cache: RWMutex для чтений
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
}