Sobes.tech
Junior — Middle

Jaká je role a účel struktury WaitGroup při vývoji v Go?

sobes.tech AI

Odpověď od AI

Ve Go je struktura WaitGroup používána k synchronizaci více gorutin. Umožňuje hlavní gorutině čekat na dokončení skupiny dalších gorutin.

Hlavní metody:

  • Add(int): zvyšuje čítač očekávaných gorutin.
  • Done(): snižuje čítač o 1, volá se po dokončení gorutiny.
  • Wait(): blokuje provádění, dokud čítač nedosáhne 0.

Příklad použití:

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

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

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

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

Tímto způsobem pomáhá WaitGroup správně řídit paralelní provádění a čekání na dokončení úkolů.