Sobes.tech
Назад к вопросам
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 помогает контролировать завершение параллельных операций.