Sobes.tech
Junior — Middle

Kāda ir WaitGroup struktūras loma un mērķis Go izstrādes laikā?

sobes.tech AI

Atbilde no AI

Go valodā, struktūra WaitGroup tiek izmantota vairāku gorutīnu sinhronizācijai. Tā ļauj galvenajai gorutīnai gaidīt citu gorutīnu pabeigšanu.

Galvenās metodes:

  • Add(int): palielina gaidāmo gorutīnu skaitu.
  • Done(): samazina skaitītāju par 1, izsauc, kad gorutīna pabeigta.
  • Wait(): bloķē izpildi, līdz skaitītājs sasniedz 0.

Piemērs lietošanai:

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

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

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

wg.Wait() // gaidām, līdz abas gorutīnas pabeigtas

Tādējādi, WaitGroup palīdz pareizi pārvaldīt paralēlo izpildi un gaidīt uzdevumu pabeigšanu.