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