Sobes.tech
Junior — Middle

Jaka jest rola i cel struktury WaitGroup podczas programowania w Go?

sobes.tech AI

Odpowiedź od AI

W Go struktura WaitGroup jest używana do synchronizacji wielu gorutyn. Pozwala głównej gorutynie czekać na zakończenie grupy innych gorutyn.

Główne metody:

  • Add(int): zwiększa licznik oczekiwanych gorutyn.
  • Done(): zmniejsza licznik o 1, wywoływana po zakończeniu gorutyny.
  • Wait(): blokuje wykonanie do czasu, aż licznik nie osiągnie 0.

Przykład użycia:

var wg sync.WaitGroup
wg.Add(2) // oczekujemy 2 gorutyn

go func() {
    defer wg.Done()
    // praca gorutyny 1
}()

go func() {
    defer wg.Done()
    // praca gorutyny 2
}()

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

W ten sposób, WaitGroup pomaga poprawnie zarządzać równoległym wykonywaniem i oczekiwaniem na zakończenie zadań.