Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot, kas ir Wait Group un kam tā tiek izmantota programmēšanā?

sobes.tech AI

Atbilde no AI

Wait Group Go valodā ir struktūra no sync pakotnes, kas tiek izmantota, lai gaidītu, kamēr grupa gorutīnu pabeigs darbu. Tā ļauj galvenajai gorutīnai (vai citai) bloķēties līdz brīdim, kad visas uzsāktās gorutīnas pabeigs savu darbu.

Galvenās metodes:

  • Add(int) — palielina gaidāmo gorutīnu skaitu.
  • Done() — samazina skaitītāju, tiek izsaukta, kad gorutīna pabeidz darbu.
  • Wait() — bloķē izpildi līdz skaitītājs sasniedz nulli.

Piemērs lietošanai:

var wg sync.WaitGroup
wg.Add(2) // gaidām 2 gorutīnas

go func() {
    defer wg.Done()
    // pirmās gorutīnas darbs
}()

go func() {
    defer wg.Done()
    // otras gorutīnas darbs
}()

wg.Wait() // gaidām, kamēr abas pabeigs darbu

Tas ir noderīgi paralēlo uzdevumu sinhronizācijai un programmas priekšlaicīgas pabeigšanas novēršanai.