Junior — Middle
Ar galite paaiškinti, kas yra Wait Group ir kam ji naudojama programavime?
sobes.tech AI
Atsakymas iš AI
Go Wait Group yra struktūra iš sync paketo, naudojama laukti, kol grupė gorutinų baigs darbą. Ji leidžia pagrindinei gorutinai (arba kitai) blokuotis iki tol, kol visi pradėti gorutinai nebaigs savo darbo.
Pagrindiniai metodai:
Add(int)— padidina laukiamų gorutinų skaičių.Done()— sumažina skaitiklį, kviečiama pasibaigus gorutinai.Wait()— blokuoja vykdymą iki skaitiklis pasieks nulį.
Naudojimo pavyzdys:
var wg sync.WaitGroup
wg.Add(2) // laukiame 2 gorutinų
go func() {
defer wg.Done()
// pirmos gorutinės darbas
}()
go func() {
defer wg.Done()
// antros gorutinės darbas
}()
wg.Wait() // laukiame abiejų pabaigos
Tai naudinga sinchronizuojant paralelines užduotis ir užkertant kelią programos ankstyvam užbaigimui.