Junior — Middle
Czy możesz wyjaśnić, czym jest Wait Group i do czego służy w programowaniu?
sobes.tech AI
Odpowiedź od AI
Wait Group w Go to struktura z pakietu sync, która służy do oczekiwania na zakończenie grupy gorutyn. Pozwala głównej gorutynie (lub innej) zablokować się do czasu, aż wszystkie uruchomione gorutiny zakończą swoją pracę.
Główne metody:
Add(int)— zwiększa licznik oczekiwanych gorutyn.Done()— zmniejsza licznik, wywoływana po zakończeniu gorutiny.Wait()— blokuje wykonanie do momentu, gdy licznik nie osiągnie zera.
Przykład użycia:
var wg sync.WaitGroup
wg.Add(2) // oczekujemy 2 gorutyn
go func() {
defer wg.Done()
// praca pierwszej gorutiny
}()
go func() {
defer wg.Done()
// praca drugiej gorutiny
}()
wg.Wait() // czekamy na zakończenie obu
To jest przydatne do synchronizacji zadań równoległych i zapobiegania przedwczesnemu kończeniu programu.