Sobes.tech
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.