Sobes.tech
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.