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.