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.