Sobes.tech
Junior — Middle

¿Puedes explicar qué es un Wait Group y para qué se utiliza en programación?

sobes.tech AI

Respuesta de la IA

Wait Group en Go es una estructura del paquete sync que se usa para esperar a que un grupo de goroutines termine. Permite que la goroutine principal (u otra) se bloquee hasta que todas las goroutines lanzadas finalicen su trabajo.

Métodos principales:

  • Add(int) — incrementa el contador de goroutines esperadas.
  • Done() — decrementa el contador, se llama al finalizar una goroutine.
  • Wait() — bloquea la ejecución hasta que el contador sea cero.

Ejemplo de uso:

var wg sync.WaitGroup
wg.Add(2) // esperamos 2 goroutines

go func() {
    defer wg.Done()
    // trabajo de la primera goroutine
}()

go func() {
    defer wg.Done()
    // trabajo de la segunda goroutine
}()

wg.Wait() // esperamos a que ambas terminen

Esto es útil para sincronizar tareas paralelas y evitar que el programa termine prematuramente.