Junior — Middle
Jaká je role a účel struktury WaitGroup při vývoji v Go?
sobes.tech AI
Odpověď od AI
Ve Go je struktura WaitGroup používána k synchronizaci více gorutin. Umožňuje hlavní gorutině čekat na dokončení skupiny dalších gorutin.
Hlavní metody:
- Add(int): zvyšuje čítač očekávaných gorutin.
- Done(): snižuje čítač o 1, volá se po dokončení gorutiny.
- Wait(): blokuje provádění, dokud čítač nedosáhne 0.
Příklad použití:
var wg sync.WaitGroup
wg.Add(2) // čekáme na 2 gorutiny
go func() {
defer wg.Done()
// práce gorutiny 1
}()
go func() {
defer wg.Done()
// práce gorutiny 2
}()
wg.Wait() // čekáme na dokončení obou gorutin
Tímto způsobem pomáhá WaitGroup správně řídit paralelní provádění a čekání na dokončení úkolů.