Junior — Middle
El tudnád magyarázni, hogyan valósul meg a szinkronizáció a Wait Group segítségével Go-ban?
sobes.tech MI
Válasz az MI-től
Go nyelvben a szinkronizáció a WaitGroup segítségével valósul meg, amely a sync csomagból származó struktúrán keresztül lehetővé teszi egy goroutine-ok csoportjának befejezésének várását.
Főbb módszerek:
Add(int)— növeli a várt goroutine-ok számát.Done()— csökkenti a számlálót, a goroutine befejezésekor hívódik.Wait()— blokkolja a végrehajtást, amíg a számláló el nem éri a nullát.
Példa:
var wg sync.WaitGroup
wg.Add(2) // két goroutine várása
go func() {
defer wg.Done()
// az első goroutine munkája
}()
go func() {
defer wg.Done()
// a második goroutine munkája
}()
wg.Wait() // várunk mindkét goroutine befejezésére
Így a WaitGroup hatékonyan szinkronizálja több párhuzamos feladat végrehajtását, bonyolult zárolási mechanizmusok használata nélkül.