Sobes.tech
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.