Семафор ограничивает число одновременно выполняемых операций, но не скорость запросов в секунду и не обязательно число ожидающих горутин.
Какое ограничение есть у семафора и буферизированного канала как решений для ограничения параллельных запросов?
Семафор ограничивает число одновременно выполняемых операций, но не скорость запросов в секунду и не обязательно число ожидающих горутин.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Семафор ограничивает число одновременно выполняемых операций, но не скорость запросов в секунду и не обязательно число ожидающих горутин.
Если захватывать слот после запуска горутины, очередь ожидания может расти без границ. Для ограничения памяти захватывайте до запуска или используйте фиксированный пул и bounded queue. Ожидание должно поддерживать отмену, а слот — освобождаться после завершения. Локальный семафор также не ограничивает суммарную нагрузку нескольких реплик сервиса без дополнительной координации.