Sobes.tech
Назад к вопросам
Junior — Middle
85

Каким образом синхронизировать доступ к общему ресурсу с помощью структуры Map и механизма Mutex?

Ответ от нейросети

sobes.tech AI

В Go для синхронизации доступа к общей структуре Map обычно используют мьютекс (sync.Mutex), так как map не является потокобезопасным.

Пример:

import (
    "sync"
)

var (
    mu sync.Mutex
    sharedMap = make(map[string]int)
)

func writeToMap(key string, value int) {
    mu.Lock()           // блокируем доступ
    sharedMap[key] = value
    mu.Unlock()         // разблокируем
}

func readFromMap(key string) (int, bool) {
    mu.Lock()
    val, ok := sharedMap[key]
    mu.Unlock()
    return val, ok
}

Таким образом, перед чтением или записью в map мы захватываем мьютекс, чтобы избежать гонок данных и обеспечить корректную работу в конкурентной среде.