Sobes.tech
Senior
28

WaitGroup туралы толығырақ айта аласыз ба: ол не үшін пайдаланылады және қандай әдістері бар?

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

AI-дан жауап

sobes.tech AI

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

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

  • Add(int): увеличивает или уменьшает счётчик ожидаемых горутин.
  • Done(): уменьшает счётчик на 1, вызывается когда горутина завершилась.
  • Wait(): блокирует выполнение до тех пор, пока счётчик не станет 0.

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

var wg sync.WaitGroup
wg.Add(2) // ожидаем 2 горутины

go func() {
    defer wg.Done()
    // работа 1
}()

go func() {
    defer wg.Done()
    // работа 2
}()

wg.Wait() // ждем завершения обеих

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