Sobes.tech
Junior — Middle

Poți explica ce este un Wait Group și pentru ce este folosit în programare?

sobes.tech AI

Răspuns de la AI

Wait Group în Go este o structură din pachetul sync utilizată pentru a aștepta finalizarea unui grup de goroutines. Permite goroutinei principale (sau altei goroutine) să se blocheze până când toate goroutinele lansate își încheie munca.

Metode principale:

  • Add(int) — crește contorul goroutine-urilor așteptate.
  • Done() — scade contorul, apelat la finalizarea unei goroutine.
  • Wait() — blochează execuția până când contorul devine zero.

Exemplu de utilizare:

var wg sync.WaitGroup
wg.Add(2) // așteptăm 2 goroutine

go func() {
    defer wg.Done()
    // munca primei goroutine
}()

go func() {
    defer wg.Done()
    // munca celei de-a doua goroutine
}()

wg.Wait() // așteptăm finalizarea ambelor

Este util pentru sincronizarea sarcinilor paralele și prevenirea terminării premature a programului.