Назад к вопросам
Фабрика Решений
Junior — Middle
88
Можете ли объяснить, что такое Wait Group и для чего она используется в программировании?
Компании, где спрашивали
Betera Group
HyperRus
Ответ от нейросети
sobes.tech AI
Wait Group в Go — это структура из пакета sync, которая используется для ожидания завершения группы горутин. Она позволяет главной горутине (или другой) блокироваться до тех пор, пока все запущенные горутины не закончат свою работу.
Основные методы:
Add(int)— увеличивает счетчик ожидаемых горутин.Done()— уменьшает счетчик, вызывается по завершении горутины.Wait()— блокирует выполнение до тех пор, пока счетчик не станет нулём.
Пример использования:
var wg sync.WaitGroup
wg.Add(2) // ожидаем 2 горутины
go func() {
defer wg.Done()
// работа первой горутины
}()
go func() {
defer wg.Done()
// работа второй горутины
}()
wg.Wait() // ждем завершения обеих
Это удобно для синхронизации параллельных задач и предотвращения преждевременного завершения программы.