Middle — Senior
Kokia Wg.Wait metodo vaidmuo siūlų sinchronizavime?
sobes.tech AI
Atsakymas iš AI
Go kalboje sync paketo Wg.Wait() metodas naudojamas kelių gorutinių sinchronizavimui. Jis blokuoja kviečiančios gorutinos vykdymą, kol WaitGroup skaitiklis nepasieks nulio, tai yra, kol visos Add() būdu pridėtos gorutinos nepakvies Done().
Pavyzdys:
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
// pirmos gorutinos darbas
}()
go func() {
defer wg.Done()
// antros gorutinos darbas
}()
wg.Wait() // Laukiame abiejų gorutinų pabaigos
Taip Wg.Wait() garantuoja, kad programa nepradės vykdyti tol, kol visi paraleliniai uždaviniai nebus baigti.