Middle+
Spune-mi despre WaitGroup în Go.
sobes.tech AI
Răspuns de la AI
În Go, sync.WaitGroup este folosit pentru a aștepta finalizarea unui grup de goroutines. Este o modalitate convenabilă de a sincroniza sarcinile paralele.
Metodele principale:
Add(int)— crește contorul goroutine-urilor așteptate.Done()— scade contorul, apelat când o goroutine s-a terminat.Wait()— blochează execuția până când contorul ajunge la zero.
Exemplu de utilizare:
var wg sync.WaitGroup
wg.Add(2) // așteptăm 2 goroutines
go func() {
defer wg.Done()
// lucrarea primei goroutine
}()
go func() {
defer wg.Done()
// lucrarea celei de-a doua goroutine
}()
wg.Wait() // așteptăm finalizarea ambelor
Astfel, WaitGroup ajută la controlul finalizării operațiunilor paralele.