Sobes.tech
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