Junior — Middle
Da li ste tokom implementacije svog programa koristili mehanizam za sinhronizaciju waitgroup?
sobes.tech АИ
Одговор од АИ
Da, u jeziku Go, mehanizam sync.WaitGroup često se koristi za sinhronizaciju više gorutina. Omogućava glavnoj gorutini da čeka završetak skupa paralelnih zadataka.
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
fmt.Printf("Gorutina %d u toku\n", id)
// neki posao
}(i)
}
wg.Wait() // čekamo da se svi pozivi Done izvrše
fmt.Println("Sve gorutine su završene")
Na ovaj način, WaitGroup pomaže u pravilnom upravljanju paralelizmom i garantuje da program neće završiti pre vremena.