Sobes.tech
Middle+

Mesélj a WaitGroup-ról a Go-ban.

sobes.tech MI

Válasz az MI-től

Go nyelven a sync.WaitGroup arra szolgál, hogy várjon egy goroutine-csoport befejezésére. Ez kényelmes módja a párhuzamos feladatok szinkronizálásának.

Főbb módszerek:

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

Használati példa:

var wg sync.WaitGroup

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

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 mindkettő befejezésére

Így a WaitGroup segít ellenőrizni a párhuzamos műveletek befejezését.