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