Встречается на 1% собеседований по Python
Как использовал семафоры или аналогичные механизмы в других языках
В Python семафоры используются для ограничения количества потоков, которые могут одновременно получить доступ к ресурсу. Чаще всего применяется threading.Semaphore.
Пример:
python
import threading
semaphore = threading.Semaphore(3) # Максимум 3 потока одновременно
def worker():
with semaphore:
print(f"Поток {threading.current_thread().name} работает")
# Критическая секция
threads = [threading.Thread(target=worker) for _ in range(5)]
for t in threads:
t.start()
for t in threads:
t.join()
text
**Нюансы:**
- `BoundedSemaphore` предотвращает случайное превышение лимита.
- В асинхронном коде (`asyncio`) используется `asyncio.Semaphore`.
- Семафоры полезны для ограничения подключений к БД или API.
Аналоги в других языках:
- Java: `java.util.concurrent.Semaphore`
- C++: `std::counting_semaphore` (C++20)
- Go: каналы с буферизацией (`chan struct{}`)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы