Sobes.tech
Junior — Middle

Kokia yra WaitGroup struktūros vaidmuo ir paskirtis Go programavimo metu?

sobes.tech AI

Atsakymas iš AI

Go kalboje, WaitGroup struktūra naudojama kelių gorutinų sinchronizavimui. Ji leidžia pagrindinei gorutinai laukti kitų gorutinų užbaigimo.

Pagrindiniai metodai:

  • Add(int): padidina laukiamų gorutinų skaičių.
  • Done(): sumažina skaitiklį 1, iškviečiama užbaigus gorutinas.
  • Wait(): blokuoja vykdymą, kol skaitiklis nepasieks 0.

Naudojimo pavyzdys:

var wg sync.WaitGroup
wg.Add(2) // laukiame 2 gorutinų

go func() {
    defer wg.Done()
    // gorutinos 1 darbas
}()

go func() {
    defer wg.Done()
    // gorutinos 2 darbas
}()

wg.Wait() // laukiame abiejų gorutinų pabaigos

Taip, WaitGroup padeda teisingai valdyti paralelinį vykdymą ir laukimą užbaigti užduotis.