Sobes.tech
Middle — Senior

Jaka jest rola metody Wg.Wait w synchronizacji wątków?

sobes.tech AI

Odpowiedź od AI

Metoda Wg.Wait() z pakietu sync w Go służy do synchronizacji wielu gorutyn. Blokuje wykonanie wywołującej gorutiny do momentu, aż licznik WaitGroup nie osiągnie zera, czyli aż wszystkie gorutiny dodane przez Add() wywołają Done().

Przykład:

var wg sync.WaitGroup
wg.Add(2)

go func() {
    defer wg.Done()
    // praca pierwszej gorutiny
}()

go func() {
    defer wg.Done()
    // praca drugiej gorutiny
}()

wg.Wait() // Czekamy na zakończenie obu gorutin

W ten sposób Wg.Wait() gwarantuje, że program nie będzie kontynuował, dopóki wszystkie zadania równoległe nie zostaną zakończone.