Встречается на собеседованиях • сегодня

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

Для ограничения обращений к ресурсу через 5 сессий можно использовать threading.Semaphore. Он позволяет контролировать количество одновременных доступов к ресурсу.

python
import threading

class ResourceLimiter:
    def __init__(self, max_sessions=5):
        self.semaphore = threading.Semaphore(max_sessions)
text
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()

text

**Как это работает:**  
- `Semaphore(5)` разрешает не более 5 потоков одновременно.  
- `with self.semaphore` блокирует доступ, если уже 5 активных сессий.  
- Остальные потоки ждут освобождения слота.  

Альтернатива — `asyncio.Semaphore` для асинхронного кода.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы