Junior
¿Qué otros métodos de sincronización de goroutines existen en Go además de los canales?
sobes.tech AI
Respuesta de la IA
Además de los canales, en Go para sincronizar las goroutines se pueden usar:
- sync.WaitGroup — permite esperar a que finalice un grupo de goroutines.
- sync.Mutex — mutex para proteger recursos compartidos contra accesos simultáneos.
- sync.RWMutex — mutex con separación entre lectura y escritura.
- sync.Cond — variable condicional para notificar a las goroutines sobre la ocurrencia de un evento.
- operaciones atómicas del paquete
sync/atomic— para operaciones atómicas con variables sin bloqueos.
Ejemplo de uso de WaitGroup:
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
// trabajo de la goroutine
}()
wg.Wait() // esperamos a que terminen todas las goroutines