Sobes.tech
Junior — Middle

¿Cuál es el papel y la función de la estructura WaitGroup en el desarrollo en Go?

sobes.tech AI

Respuesta de la IA

En Go, la estructura WaitGroup se utiliza para sincronizar varias goroutines. Permite que la goroutine principal espere a que finalicen otras goroutines.

Métodos principales:

  • Add(int): incrementa el contador de goroutines esperadas.
  • Done(): decrementa el contador en 1, se llama al finalizar una goroutine.
  • Wait(): bloquea la ejecución hasta que el contador llegue a 0.

Ejemplo de uso:

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

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

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

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

De esta forma, WaitGroup ayuda a gestionar correctamente la ejecución paralela y la espera de finalización de tareas.