Sobes.tech
Junior — Middle

Tudnád magyarázni, hogy mi az a Wait Group és mire használják a programozásban?

sobes.tech MI

Válasz az MI-től

A Wait Group a Go nyelvben a sync csomagból származó szerkezet, amelyet egy goroutine csoport befejezésének várására használnak. Lehetővé teszi, hogy a fő goroutine (vagy más) blokkoljon, amíg az összes indított goroutine be nem fejezi a munká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, amikor egy goroutine befejeződik.
  • Wait() — blokkolja a végrehajtást, amíg a számláló el nem éri a nullát.

Használati példa:

var wg sync.WaitGroup
wg.Add(2) // 2 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

Ez hasznos a párhuzamos feladatok szinkronizálására és a program korai befejezésének megakadályozására.