• Задача
  • Решение
  • Обсуждение

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
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

00:00:00
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки