Senior
Зашто нам је потребан WaitGroup у овом задатку?
sobes.tech АИ
Одговор од АИ
WaitGroup u Go se koristi za sinhronizaciju gorutina. U zadacima gde se pokreće više gorutina, WaitGroup omogućava glavnom thread-u da sačeka završetak svih pokrenutih gorutina pre nego što nastavi sa izvršavanjem. Ovo sprečava prerano izlazak iz programa ili prelazak na sledeći korak kada pozadinske operacije još nisu završene.
Primer upotrebe:
var wg sync.WaitGroup
wg.Add(3) // čekamo 3 gorutine
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // signaliziramo završetak
// rad gorutine
fmt.Println("Gorutina", id, "završena")
}(i)
}
wg.Wait() // čekamo završetak svih gorutina
fmt.Println("Sve gorutine su završene")
Na ovaj način, WaitGroup obezbeđuje ispravnu koordinaciju i sprečava trke ili prerano završavanje programa.