Sobes.tech
Junior — Middle

Mi a szerepe és célja a WaitGroup szerkezetnek Go fejlesztés során?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a WaitGroup szerkezetet több goroutine szinkronizálására használják. Lehetővé teszi a fő goroutine számára, hogy várjon más goroutine-ok befejezésére.

Főbb módszerek:

  • Add(int): növeli a várt goroutine-ok számát.
  • Done(): csökkenti a számlálót 1-gyel, amikor egy goroutine befejeződik.
  • Wait(): blokkolja a végrehajtást, amíg a számláló el nem éri a 0-t.

Használati példa:

var wg sync.WaitGroup
wg.Add(2) // két goroutine-t várunk

go func() {
    defer wg.Done()
    // goroutine 1 munkája
}()

go func() {
    defer wg.Done()
    // goroutine 2 munkája
}()

wg.Wait() // várjuk mindkét goroutine befejezését

Így a WaitGroup segít a feladatok párhuzamos végrehajtásának és befejezésének helyes kezelésében.