Junior — Middle
Jak synchronizovat přístup ke sdílenému zdroji pomocí struktury Map a mechanismu Mutex?
sobes.tech AI
Odpověď od AI
V jazyce Go se pro synchronizaci přístupu ke sdílené struktuře Map obvykle používá mutex (sync.Mutex), protože map není vlákny bezpečná.
Příklad:
import (
"sync"
)
var (
mu sync.Mutex
sharedMap = make(map[string]int)
)
func writeToMap(key string, value int) {
mu.Lock() // zamkne přístup
sharedMap[key] = value
mu.Unlock() // odemkne
}
func readFromMap(key string) (int, bool) {
mu.Lock()
val, ok := sharedMap[key]
mu.Unlock()
return val, ok
}
Tímto způsobem před čtením nebo zápisem do mapy uzamkneme mutex, abychom zabránili závodním podmínkám a zajistili správnou funkčnost v konkurenčním prostředí.