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