Junior — Middle
Hogyan szinkronizáljuk a hozzáférést egy közös erőforráshoz Map struktúra és Mutex mechanizmus segítségével?
sobes.tech MI
Válasz az MI-től
Go nyelven a közös Map struktúrához való hozzáférés szinkronizálására általában mutexet (sync.Mutex) használnak, mivel a map nem szálbiztos.
Példa:
import (
"sync"
)
var (
mu sync.Mutex
sharedMap = make(map[string]int)
)
func writeToMap(key string, value int) {
mu.Lock() // zárolja a hozzáférést
sharedMap[key] = value
mu.Unlock() // feloldja
}
func readFromMap(key string) (int, bool) {
mu.Lock()
val, ok := sharedMap[key]
mu.Unlock()
return val, ok
}
Így a map-be való olvasás vagy írás előtt zároljuk a mutexet, hogy elkerüljük a versenyhelyzeteket és biztosítsuk a helyes működést párhuzamos környezetben.