Встречается на собеседованиях • сегодня
Как бы реализовал систему с ограничением обращений к ресурсу через 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` для асинхронного кода.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы