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.