Sobes.tech
Junior — Middle

Care este rolul și scopul structurii WaitGroup în dezvoltarea în Go?

sobes.tech AI

Răspuns de la AI

În Go, structura WaitGroup este utilizată pentru a sincroniza mai multe goroutines. Permite goroutinei principale să aștepte finalizarea unui grup de alte goroutines.

Metode principale:

  • Add(int): crește numărul de goroutines așteptate.
  • Done(): scade numărul cu 1, apelată la finalizarea unei goroutines.
  • Wait(): blochează execuția până când numărătorul ajunge la 0.

Exemplu de utilizare:

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

go func() {
    defer wg.Done()
    // lucru pentru goroutine 1
}()

go func() {
    defer wg.Done()
    // lucru pentru goroutine 2
}()

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

Astfel, WaitGroup ajută la gestionarea corectă a execuției paralele și așteptării finalizării sarcinilor.