Встречается на 1% собеседований по Python
Как бы реализовал систему с ограничением обращений к ресурсу через 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
интервью вопросы и ответы