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ń.