Junior — Middle
¿Qué situaciones pueden surgir al escribir simultáneamente en un almacenamiento de tipo mapa?
sobes.tech AI
Respuesta de la IA
En Go, el mapa estándar (map) no es seguro para la concurrencia cuando se lee y escribe simultáneamente desde varias goroutines. Si varias goroutines escriben datos en un map sin sincronización, esto puede provocar un pánico en tiempo de ejecución con el mensaje "concurrent map writes" o un comportamiento impredecible del programa.
Para evitar estos problemas, se deben usar mecanismos de sincronización, como mutex (sync.Mutex) o estructuras especializadas, como sync.Map, que son seguras para acceso concurrente.
Ejemplo con 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
}
Sin esta protección, la escritura simultánea puede dañar los datos o provocar la terminación inesperada del programa.