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

Python Junior Без компании
Как использовал семафоры или аналогичные механизмы в других языках
Ответы
В Python семафоры используются для ограничения количества потоков, которые могут одновременно получить доступ к ресурсу. Чаще всего применяется `threading.Semaphore`. Пример: ``` 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() ``` **Нюансы:** - `BoundedSemaphore` предотвращает случайное превышение лимита. - В асинхронном коде (`asyncio`) используется `asyncio.Semaphore`. - Семафоры полезны для ограничения подключений к БД или API. Аналоги в других языках: - Java: `java.util.concurrent.Semaphore` - C++: `std::counting_semaphore` (C++20) - Go: каналы с буферизацией (`chan struct{}`)