Sobes.tech
Middle+

Opowiedz mi o WaitGroup w Go.

sobes.tech AI

Odpowiedź od AI

W Go sync.WaitGroup służy do oczekiwania na zakończenie grupy goroutine. To wygodny sposób synchronizacji zadań równoległych.

Główne metody:

  • Add(int) — zwiększa licznik oczekujących goroutine.
  • Done() — zmniejsza licznik, wywoływany gdy goroutine się kończy.
  • Wait() — blokuje wykonanie do momentu, aż licznik nie osiągnie zera.

Przykład użycia:

var wg sync.WaitGroup

wg.Add(2) // oczekujemy 2 goroutine

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

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

wg.Wait() // czekamy na zakończenie obu

W ten sposób WaitGroup pomaga kontrolować zakończenie operacji równoległych.