Sobes.tech
Назад к вопросам
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() // ждем завершения обеих

Это удобно для синхронизации параллельных задач и предотвращения преждевременного завершения программы.