Перейти к содержимому

(код без описания)

go · basicsOzon / Озон (полный список, ч. 1)3 кв 2024не решено

(код без описания)

// Кэш будет использоваться под высокой нагрузкой в проде
// Частота записи/чтения 20%/80% соответственно
func main() {
fmt.Println(GetOrCreate("hello ", "world "))
fmt.Println(Get("hello "))
}
var cache = make(map[string]string)
// GetOrCreate проверяет существование ключа key
// Если такого нет, то создает новое значение
func GetOrCreate(key, value string) string {
var m sync.Mutex
m.Lock()
value = cache[key]
m.Unlock()
if value != "" {
return value
}
m.Lock()
cache[key] = value
m.Unlock()
return value
}
func Get(key string) string {
var m sync.Mutex
m.Lock()
v := cache[key]
m.Unlock()
return v
}

Источник: Ozon / Озон (полный список, ч. 1) · 3 кв 2024

← Поиск цен для отелей · Все задачи · Go · (код без описания) →