Sobes.tech
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.