Junior — Middle
Ce situații pot apărea în timpul scrierii simultane într-un stocare de tip hartă?
sobes.tech AI
Răspuns de la AI
În Go, harta standard (map) nu este sigură pentru accesul concurent pentru citire și scriere simultană din mai multe goroutines. Dacă mai multe goroutines scriu date în map fără sincronizare, acest lucru poate duce la panic în timpul execuției cu mesajul "concurrent map writes" sau la comportament imprevizibil al programului.
Pentru a evita astfel de probleme, trebuie utilizate mecanisme de sincronizare, cum ar fi mutex (sync.Mutex) sau structuri specializate, precum sync.Map, care sunt sigure pentru accesul concurent.
Exemplu cu 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
}
Fără această protecție, scrierea simultană poate duce la coruperea datelor sau la închiderea neașteptată a programului.