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.