Назад к вопросам
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 мы захватываем мьютекс, чтобы избежать гонок данных и обеспечить корректную работу в конкурентной среде.