Sobes.tech
Junior — Middle

Koja je uloga i svrha strukture WaitGroup tokom razvoja u Go?

sobes.tech АИ

Одговор од АИ

У Go, struktura WaitGroup se koristi za sinhronizaciju više gorutina. Omogućava glavnoj gorutini da čeka završetak grupe drugih gorutina.

Glavne metode:

  • Add(int): povećava brojač očekivanih gorutina.
  • Done(): smanjuje brojač za 1, poziva se po završetku gorutine.
  • Wait(): blokira izvršenje dok brojač ne postane 0.

Primer upotrebe:

var wg sync.WaitGroup
wg.Add(2) // čekamo 2 gorutine

go func() {
    defer wg.Done()
    // rad gorutine 1
}()

go func() {
    defer wg.Done()
    // rad gorutine 2
}()

wg.Wait() // čekamo da se obe gorutine završe

Na ovaj način, WaitGroup pomaže da se pravilno upravlja paralelnim izvršenjem i čekanjem na završetak zadataka.