Sobes.tech
Back to questions
Junior — Middle
89

Можете ли объяснить, что такое Wait Group и для чего она используется в программировании?

Companies where asked
Фабрика РешенийФабрика Решений
Betera Group
HyperRus

Answer from AI

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() // ждем завершения обеих

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