Назад к вопросам
Middle+
3
Расскажите про WaitGroup в Go.
Компании, где спрашивали
Servicepipi
Ответ от нейросети
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 помогает контролировать завершение параллельных операций.