Семафор — что это такое и где его взять в Go?

Семафор ограничивает число одновременных участников. В Go простой вариант — буферизированный канал, а для взвешенных разрешений есть golang.org/x/sync/semaphore.

Короткий ответ

Что ответить на собеседовании

Семафор ограничивает число одновременных участников. В Go простой вариант — буферизированный канал, а для взвешенных разрешений есть golang.org/x/sync/semaphore.

Подробный разбор

Ответ с пояснениями

Семафор ограничивает число одновременных участников. В Go простой вариант — буферизированный канал, а для взвешенных разрешений есть golang.org/x/sync/semaphore.

При канальном варианте отправка занимает слот, получение освобождает. Освобождение выполняют ровно один раз, обычно через defer после успешного захвата. Ожидание должно учитывать context; размер ноль для такой схемы не создаёт полезного лимитера и может заблокировать работу.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее