Sobes.tech
Middle+

Papaskink man apie WaitGroup Go kalboje.

sobes.tech AI

Atsakymas iš AI

Go kalboje sync.WaitGroup naudojamas laukti, kol baigsis gorutinos grupė. Tai patogus būdas sinchronizuoti paralelinius uždavinius.

Pagrindiniai metodai:

  • Add(int) — padidina laukiančių gorutinos skaičių.
  • Done() — sumažina skaitiklį, kviečiama, kai gorutina baigiasi.
  • Wait() — blokuoja vykdymą, kol skaitiklis nepasieks nulio.

Naudojimo pavyzdys:

var wg sync.WaitGroup

wg.Add(2) // laukiame 2 gorutinas

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

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

wg.Wait() // laukiame abiejų pabaigos

Šiuo būdu WaitGroup padeda kontroliuoti paralelinių operacijų pabaigą.