Junior — Middle
Aká je úloha a účel štruktúry WaitGroup pri vývoji v Go?
sobes.tech AI
Odpoveď od AI
V Go sa struktúrou WaitGroup sa synchronizujú viaceré gorutiny. Umožňuje hlavnej gorutine čakať na dokončenie skupiny iných gorútin.
Hlavné metódy:
- Add(int): zvyšuje počet očakávaných gorútin.
- Done(): znižuje počet o 1, volá sa pri ukončení gorutiny.
- Wait(): blokuje vykonávanie, kým počet nie je 0.
Príklad použitia:
var wg sync.WaitGroup
wg.Add(2) // čakáme na 2 gorutiny
go func() {
defer wg.Done()
// práca gorutiny 1
}()
go func() {
defer wg.Done()
// práca gorutiny 2
}()
wg.Wait() // čakáme na ukončenie oboch gorútin
Týmto spôsobom pomáha WaitGroup správne riadiť paralelné vykonávanie a čakanie na dokončenie úloh.