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