Junior — Middle
Welke situaties kunnen zich voordoen bij gelijktijdig schrijven in een map-achtig opslag?
sobes.tech AI
Antwoord van AI
In Go is de standaardkaart (map) niet thread-safe voor gelijktijdig lezen en schrijven vanuit meerdere goroutines. Als meerdere goroutines gelijktijdig gegevens in een map schrijven zonder synchronisatie, kan dit leiden tot een runtime panic met de melding "concurrent map writes" of tot onvoorspelbaar gedrag van het programma.
Om dergelijke problemen te voorkomen, moeten synchronisatie-mechanismen worden gebruikt, zoals mutex (sync.Mutex) of gespecialiseerde structuren zoals sync.Map, die veilig zijn voor gelijktijdige toegang.
Voorbeeld met mutex:
var mu sync.Mutex
var m = make(map[string]int)
func writeToMap(key string, value int) {
mu.Lock()
defer mu.Unlock()
m[key] = value
}
Zonder dergelijke bescherming kan gelijktijdig schrijven leiden tot datacorruptie of onverwacht programma-afsluiten.