Sobes.tech
Middle+

Pověz mi o WaitGroup v Go.

sobes.tech AI

Odpověď od AI

V jazyce Go se sync.WaitGroup používá k tomu, aby se čekalo na dokončení skupiny gorutin. Je to pohodlný způsob, jak synchronizovat paralelní úkoly.

Hlavní metody:

  • Add(int) — zvyšuje čítač očekávaných gorutin.
  • Done() — snižuje čítač, volá se, když gorutina skončí.
  • Wait() — blokuje provádění, dokud čítač nedosáhne nuly.

Příklad použití:

var wg sync.WaitGroup

wg.Add(2) // čekáme na 2 gorutiny

go func() {
    defer wg.Done()
    // práce první gorutiny
}()

go func() {
    defer wg.Done()
    // práce druhé gorutiny
}()

wg.Wait() // čekáme na dokončení obou

Tímto způsobem WaitGroup pomáhá kontrolovat dokončení paralelních operací.