Приведите практический кейс использования `SemaphoreSlim`.

SemaphoreSlim полезен для ограничения числа одновременных обращений к внешнему API, например до четырёх, без блокировки потоков, ожидающих свободное место.

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

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

SemaphoreSlim полезен для ограничения числа одновременных обращений к внешнему API, например до четырёх, без блокировки потоков, ожидающих свободное место.

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

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

SemaphoreSlim полезен для ограничения числа одновременных обращений к внешнему API, например до четырёх, без блокировки потоков, ожидающих свободное место.

await gate.WaitAsync(cancellationToken);
try
{
    await SendAsync(item, cancellationToken);
}
finally
{
    gate.Release();
}

Здесь gate заранее создан как new SemaphoreSlim(4, 4) и общий для всех этих операций. Release находится в finally после успешного WaitAsync: при отмене ожидания нельзя освобождать незахваченный слот. Семафор ограничивает конкурентность, но не число запросов в секунду и не координирует разные процессы.

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

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

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

Подробнее