Sobes.tech
Middle+
28

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

Сұралған компаниялар
Servicepipi

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