Sobes.tech
Middle — Senior

Mi a Wg.Wait módszer szerepe a szálak szinkronizálásában?

sobes.tech MI

Válasz az MI-től

A Wg.Wait() metódus a sync csomagból Go nyelven több goroutine szinkronizálására szolgál. Blokkolja a hívó goroutine végrehajtását, amíg a WaitGroup számlálója el nem éri a nullát, azaz amíg az összes Add()-val hozzáadott goroutine nem hívja meg a Done()-t.

Példa:

var wg sync.WaitGroup
wg.Add(2)

go func() {
    defer wg.Done()
    // az első goroutine munkája
}()

go func() {
    defer wg.Done()
    // a második goroutine munkája
}()

wg.Wait() // Várakozás mindkét goroutine befejezésére

Így a Wg.Wait() garantálja, hogy a program nem folytatódik, amíg minden párhuzamos feladat be nem fejeződik.