Что такое Semaphore?

Middle
191 просмотров
AFK Offer AI

Semaphore — как Lock, но разрешает N одновременных доступов. Semaphore(5) — до 5 потоков одновременно. acquire() уменьшает счётчик, release() увеличивает. Когда счётчик 0 — acquire блокируется. Используется для ограничения конкурентности: не более 10 одновременных HTTP-запросов, не более 5 подключений к БД. BoundedSemaphore — кидает ошибку если release вызван больше раз чем acquire (защита от багов). В asyncio есть asyncio.Semaphore для корутин.

Следующий вопрос

Реализуйте транспонирование матрицы