Back to questions
Senior
8
Зачем нам нужны WaitGroup в этой задаче?
Companies where asked
Cloud.ru
Answer from AI
sobes.tech AI
WaitGroup в Go используется для синхронизации горутин. В задачах, где запускается несколько горутин, WaitGroup позволяет основному потоку дождаться завершения всех запущенных горутин, прежде чем продолжить выполнение. Это предотвращает преждевременный выход из программы или переход к следующему этапу, когда фоновые операции еще не завершены.
Пример использования:
var wg sync.WaitGroup
wg.Add(3) // ожидаем 3 горутины
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // сигнализируем о завершении
// работа горутины
fmt.Println("Горутина", id, "завершена")
}(i)
}
wg.Wait() // ждем завершения всех горутин
fmt.Println("Все горутины завершены")
Таким образом, WaitGroup обеспечивает корректную координацию и предотвращает гонки или преждевременное завершение программы.