Back to questions
Middle+
4
Расскажите про WaitGroup в Go.
Companies where asked
Servicepipi
Answer from AI
sobes.tech AI
В Go sync.WaitGroup используется для ожидания завершения группы горутин. Это удобный способ синхронизировать параллельные задачи.
Основные методы:
Add(int)— увеличивает счетчик ожидаемых горутин.Done()— уменьшает счетчик, вызывается когда горутина завершилась.Wait()— блокирует выполнение до тех пор, пока счетчик не станет нулём.
Пример использования:
var wg sync.WaitGroup
wg.Add(2) // ожидаем 2 горутины
go func() {
defer wg.Done()
// работа первой горутины
}()
go func() {
defer wg.Done()
// работа второй горутины
}()
wg.Wait() // ждем завершения обеих
Таким образом, WaitGroup помогает контролировать завершение параллельных операций.