Senior
Kāpēc mums šajā uzdevumā ir nepieciešams WaitGroup?
sobes.tech AI
Atbilde no AI
WaitGroup Go valodā tiek izmantots gorutinu sinhronizācijai. Darbā, kur tiek palaistas vairāki gorutinas, WaitGroup ļauj galvenajam pavedienam gaidīt, līdz visas palaistās gorutinas ir pabeigtas, pirms turpināt izpildi. Tas novērš programmas priekšlaicīgu iziešanu vai pāreju uz nākamo posmu, kad fona operācijas vēl nav pabeigtas.
Piemērs lietošanai:
var wg sync.WaitGroup
wg.Add(3) // gaidām 3 gorutinas
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // signāls par pabeigšanu
// gorutinas darbs
fmt.Println("Gorutina", id, "pabeigta")
}(i)
}
wg.Wait() // gaidām, kamēr visas gorutinas pabeigsies
fmt.Println("Visas gorutinas ir pabeigtas")
Tādējādi, WaitGroup nodrošina pareizu koordināciju un novērš sacensību stāvokļus vai priekšlaicīgu programmas pabeigšanu.