Sobes.tech
Назад к вопросам
Senior
4

Какие есть способы объявить WaitGroup? Как записать значение в канал?

Компании, где спрашивали
01.tech

Ответ от нейросети

sobes.tech AI

Объявление WaitGroup в Go:

var wg sync.WaitGroup
// или
wg := &sync.WaitGroup{}

WaitGroup используется для ожидания завершения группы горутин. Основные методы:

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

Запись значения в канал:

ch := make(chan int)

// Запись значения 42 в канал
ch <- 42

Если канал буферизирован, запись может быть неблокирующей, если в буфере есть место. Если канал небуферизирован, запись блокируется до тех пор, пока кто-то не прочитает значение из канала.