Sobes.tech
Back to questions
Middle+
4

Расскажите про WaitGroup в Go.

Companies where asked
Servicepipi

Answer from AI

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