Junior — Middle
Koje funkcije pruža struktura WaitGroup u jeziku Go za sinhronizaciju gorutina?
sobes.tech АИ
Одговор од АИ
U jeziku Go, struktura sync.WaitGroup koristi se za sinhronizaciju više gorutina, omogućavajući glavnoj gorutini da čeka na završetak drugih.
Glavne metode WaitGroup:
-
Add(delta int)— povećava ili smanjuje brojač očekivanih gorutina. Obično se poziva pre pokretanja gorutina. -
Done()— smanjuje brojač za 1, poziva se na kraju rada gorutine. -
Wait()— blokira izvršenje dok brojač ne postane nula.
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.Println("Gorutina", id)
}(i)
}
wg.Wait() // čekamo da sve gorutine završe
fmt.Println("Sve gorutine su završene")
Na ovaj način, WaitGroup pomaže u koordinaciji paralelnog izvršavanja i osigurava da program ne završi prerano.