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.