Sobes.tech
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.