Junior — Middle
Hoe synchroniseer je de toegang tot een gedeelde bron met behulp van een Map-structuur en een Mutex-mechanisme?
sobes.tech AI
Antwoord van AI
In Go wordt voor het synchroniseren van de toegang tot een gedeelde Map-structuur meestal een mutex (sync.Mutex) gebruikt, omdat de map niet thread-safe is.
Voorbeeld:
import (
"sync"
)
var (
mu sync.Mutex
sharedMap = make(map[string]int)
)
func writeToMap(key string, value int) {
mu.Lock() // vergrendel de toegang
sharedMap[key] = value
mu.Unlock() // ontgrendel
}
func readFromMap(key string) (int, bool) {
mu.Lock()
val, ok := sharedMap[key]
mu.Unlock()
return val, ok
}
Op deze manier vergrendelen we de mutex voordat we lezen of schrijven in de map, om racecondities te voorkomen en correcte werking in een gelijktijdige omgeving te garanderen.