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

Как использовал семафоры или аналогичные механизмы в других языках

В 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{}`)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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