Senior
Prečo potrebujeme v tejto úlohe WaitGroup?
sobes.tech AI
Odpoveď od AI
WaitGroup v Go sa používa na synchronizáciu gorutín. V úlohách, kde sa spúšťa viacero gorutín, WaitGroup umožňuje hlavnému vláknu počkať na dokončenie všetkých spustených gorutín pred pokračovaním v vykonávaní. Tým sa zabráni predčasnému ukončeniu programu alebo prechodu na ďalší krok, keď operácie na pozadí ešte nie sú dokončené.
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 dokončenie
// práca gorutiny
fmt.Println("Gorutina", id, "dokončená")
}(i)
}
wg.Wait() // čakáme na dokončenie všetkých gorutín
fmt.Println("Všetky gorutiny sú dokončené")
Týmto spôsobom WaitGroup zabezpečuje správnu koordináciu a zabraňuje súťažiam alebo predčasnému ukončeniu programu.