Junior — Middle
Aké funkcie poskytuje štruktúra WaitGroup v jazyku Go na synchronizáciu gorutín?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa štruktúra sync.WaitGroup používa na synchronizáciu viacerých gorútin, umožňujúc hlavnej gorutine čakať na ich dokončenie.
Hlavné metódy WaitGroup:
-
Add(delta int)— zvyšuje alebo znižuje čítač očakávaných gorútin. Zvyčajne sa volá pred spustením gorútin. -
Done()— znižuje čítač o 1, volá sa na konci práce gorutiny. -
Wait()— blokuje vykonávanie, kým čítač nedosiahne nulu.
Príklad použitia:
var wg sync.WaitGroup
wg.Add(3) // čakáme na 3 gorutiny
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // signalizujeme ukončenie
fmt.Println("Gorutina", id)
}(i)
}
wg.Wait() // čakáme na dokončenie všetkých gorútin
fmt.Println("Všetky gorutiny sú dokončené")
Týmto spôsobom WaitGroup pomáha koordinovať paralelné vykonávanie a zabezpečuje, že program sa neskončí skôr, ako má.