Junior — Middle
¿Cómo sincronizar el acceso a un recurso compartido usando una estructura Map y un mecanismo Mutex?
sobes.tech AI
Respuesta de la IA
En Go, para sincronizar el acceso a una estructura compartida Map, generalmente se utiliza un mutex (sync.Mutex), ya que map no es seguro para concurrencia.
Ejemplo:
import (
"sync"
)
var (
mu sync.Mutex
sharedMap = make(map[string]int)
)
func writeToMap(key string, value int) {
mu.Lock() // bloquea el acceso
sharedMap[key] = value
mu.Unlock() // desbloquea
}
func readFromMap(key string) (int, bool) {
mu.Lock()
val, ok := sharedMap[key]
mu.Unlock()
return val, ok
}
De esta manera, antes de leer o escribir en el map, se captura el mutex para evitar condiciones de carrera y garantizar un funcionamiento correcto en entornos concurrentes.