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