Junior — Middle
Clasa Map asigură siguranța atunci când este utilizată într-un mediu multi-thread?
sobes.tech AI
Răspuns de la AI
În Go, tipul standard Map nu este sigur pentru utilizarea în medii multi-thread fără sincronizare suplimentară. Dacă mai multe goroutines citesc și scriu în Map în același timp fără protecție, acest lucru poate duce la condiții de cursă și panic.
Pentru a asigura siguranța în accesul concurent, se pot folosi:
- Mutexuri (sync.Mutex sau sync.RWMutex) pentru blocarea accesului la Map.
- Structuri specializate, precum sync.Map, concepute pentru acces concurent.
Exemplu de utilizare a sync.Map:
var m sync.Map
m.Store("key", "value")
value, ok := m.Load("key")
if ok {
fmt.Println(value)
}
Astfel, Map-ul clasic nu asigură siguranța în multi-threading, dar există instrumente pentru a lucra în siguranță cu colecții asociative.