Sobes.tech
Middle+

Pastāsti man par WaitGroup Go.

sobes.tech AI

Atbilde no AI

Go valodā sync.WaitGroup tiek izmantots, lai gaidītu, kamēr grupa gorutīnu pabeigs darbu. Tas ir ērts veids, kā sinhronizēt paralēlas uzdevumus.

Galvenās metodes:

  • Add(int) — palielina gaidāmo gorutīnu skaitu.
  • Done() — samazina skaitītāju, izsauc, kad gorutina 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

Tādējādi WaitGroup palīdz kontrolēt paralēlo operāciju pabeigšanu.