Junior
100
questionbank

Что такое WaitGroup в Go и для чего он используется?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

WaitGroup — это механизм синхронизации в Go, который позволяет дождаться завершения группы горутин.

Используется для:

  • Ожидания завершения всех горутин перед выходом из функции или программы.
  • Координации работы между несколькими горутинами.

Пример использования:

go

Основные методы:

  • Add(delta int): Увеличивает внутренний счетчик WaitGroup на delta. Должен быть вызван перед запуском каждой горутины, за которой нужно следить.
  • Done(): Уменьшает внутренний счетчик WaitGroup на 1. Обычно вызывается в defer внутри горутины, чтобы гарантировать уменьшение счетчика даже при панике.
  • Wait(): Блокирует текущую горутину до тех пор, пока внутренний счетчик WaitGroup не станет равен 0.