Sobes.tech
Junior — Middle

Quelles situations peuvent survenir lors de l'écriture simultanée dans un stockage de type carte?

sobes.tech IA

Réponse de l'IA

En Go, une carte standard (map) n'est pas sûre pour la concurrence lors de la lecture et de l'écriture simultanées depuis plusieurs goroutines. Si plusieurs goroutines écrivent simultanément dans une map sans synchronisation, cela peut entraîner une panique d'exécution avec le message "concurrent map writes" ou un comportement imprévisible du programme.

Pour éviter ces problèmes, il faut utiliser des mécanismes de synchronisation, comme un mutex (sync.Mutex) ou des structures spécialisées, comme sync.Map, qui sont sûres pour un accès concurrent.

Exemple avec 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
}

Sans cette protection, l'écriture simultanée peut endommager les données ou entraîner une terminaison inattendue du programme.