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.