Назад к вопросам
Avito
Junior — Middle
79
Какова роль и назначение структуры WaitGroup при разработке на Go?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go структура WaitGroup используется для синхронизации нескольких горутин. Она позволяет основной горутине ждать завершения группы других горутин.
Основные методы:
- Add(int): увеличивает счетчик ожидаемых горутин.
- Done(): уменьшает счетчик на 1, вызывается по завершении горутины.
- Wait(): блокирует выполнение до тех пор, пока счетчик не станет 0.
Пример использования:
var wg sync.WaitGroup
wg.Add(2) // ожидаем 2 горутины
go func() {
defer wg.Done()
// работа горутины 1
}()
go func() {
defer wg.Done()
// работа горутины 2
}()
wg.Wait() // ждем завершения обеих горутин
Таким образом, WaitGroup помогает корректно управлять параллельным выполнением и ожиданием завершения задач.