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ą.