Senior
¿Decidiste escribir WaitGroup porque apareció un canal o porque decidiste escribir goroutines para algo?
sobes.tech AI
Respuesta de la IA
WaitGroup en Go se utiliza para esperar a que un grupo de goroutines finalice.
Si tienes varias goroutines que realizan tareas en paralelo y necesitas esperar a que terminen antes de continuar, WaitGroup es una herramienta conveniente.
Los canales y las goroutines son mecanismos diferentes. Un canal se usa para comunicación y sincronización entre goroutines, mientras que WaitGroup se usa para esperar a que terminen.
Por ejemplo, si tienes goroutines para realizar tareas y quieres esperar a que todas terminen, usas WaitGroup:
var wg sync.WaitGroup
wg.Add(3) // esperamos 3 goroutines
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done()
// trabajo de la goroutine
fmt.Println("Goroutine", id, "terminada")
}(i)
}
wg.Wait() // esperamos a que terminen todas las goroutines
De esta manera, WaitGroup se usa precisamente porque hay goroutines que necesitan sincronización en su finalización, no por la existencia de canales.