Middle — Middle+
¿Se puede realizar de manera segura una escritura en un contenedor map en un entorno multihilo sin sincronización adicional?
sobes.tech AI
Respuesta de la IA
En Go, el mapa estándar (map) no es seguro para escritura en entornos concurrentes. Si varias goroutines escriben en un map sin sincronización, esto provocará condiciones de carrera y pánicos en tiempo de ejecución.
Para escribir de manera segura en un map en un entorno multihilo, se debe usar:
- sync.Mutex o sync.RWMutex para bloquear el acceso;
- sync.Map, una implementación de mapa segura para concurrencia de la biblioteca estándar.
Ejemplo con sync.Mutex:
var mu sync.Mutex
var m = make(map[string]int)
func safeWrite(key string, value int) {
mu.Lock()
m[key] = value
mu.Unlock()
}
Sin esta sincronización, escribir en un map no es seguro.