Junior — Middle
¿Qué tipos de mecanismos de bloqueo mutuo exclusión utilizas en tus proyectos?
sobes.tech AI
Respuesta de la IA
En Go, para implementar exclusión mutua, generalmente utilizo el tipo estándar sync.Mutex. Es simple de usar y bloquea eficazmente las secciones críticas del código.
También uso sync.RWMutex cuando necesito distinguir entre acceso de lectura y escritura: varios goroutines pueden leer datos simultáneamente, pero la escritura bloquea a todos.
En algunos casos, utilizo canales (channels) para sincronización, lo que permite evitar bloqueos explícitos y hacer el código más declarativo.
Ejemplo con sync.Mutex:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
De esta forma, la elección del mecanismo depende de la tarea específica y los requisitos de rendimiento.