Senior
¿Por qué necesitamos WaitGroup en esta tarea?
sobes.tech AI
Respuesta de la IA
WaitGroup en Go se utiliza para sincronizar goroutines. En tareas donde se lanzan varias goroutines, WaitGroup permite que el hilo principal espere a que todas las goroutines lanzadas terminen antes de continuar con la ejecución. Esto evita que el programa salga prematuramente o pase a la siguiente etapa cuando las operaciones en segundo plano aún no han finalizado.
Ejemplo de uso:
var wg sync.WaitGroup
wg.Add(3) // esperamos 3 goroutines
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // señalizamos la finalización
// trabajo de la goroutine
fmt.Println("Goroutine", id, "finalizada")
}(i)
}
wg.Wait() // esperamos a que todas las goroutines terminen
fmt.Println("Todas las goroutines han finalizado")
De esta forma, WaitGroup asegura una coordinación correcta y previene carreras o finalizaciones prematuras del programa.