Как бы реализовал систему с ограничением обращений к ресурсу через 5 сессий

Python Junior Без компании
Как бы реализовал систему с ограничением обращений к ресурсу через 5 сессий
Ответы
Для ограничения обращений к ресурсу через 5 сессий можно использовать `threading.Semaphore`. Он позволяет контролировать количество одновременных доступов к ресурсу. ``` import threading class ResourceLimiter: def __init__(self, max_sessions=5): self.semaphore = threading.Semaphore(max_sessions) def access_resource(self): with self.semaphore: print(f"Resource accessed by {threading.current_thread().name}") # Здесь происходит работа с ресурсом # Пример использования limiter = ResourceLimiter() threads = [] for i in range(10): t = threading.Thread(target=limiter.access_resource, name=f"Thread-{i}") t.start() threads.append(t) for t in threads: t.join() ``` **Как это работает:** - `Semaphore(5)` разрешает не более 5 потоков одновременно. - `with self.semaphore` блокирует доступ, если уже 5 активных сессий. - Остальные потоки ждут освобождения слота. Альтернатива — `asyncio.Semaphore` для асинхронного кода.