Зачем нужен семафор в Python

Python Middle Баланс-Платформа
Зачем нужен семафор в Python
Ответы
Семафор в Python используется для контроля доступа к общему ресурсу в многопоточной или многопроцессорной среде. Он ограничивает количество потоков/процессов, которые могут одновременно работать с ресурсом. Основные особенности: - Счетчик семафора уменьшается при `acquire()` и увеличивается при `release()` - Если счетчик = 0, поток блокируется до освобождения - Полезен для ограничения параллельных соединений, доступа к API и т.д. Пример с `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(10)] for t in threads: t.start() for t in threads: t.join() ``` В отличие от Lock, семафор позволяет нескольким потокам работать одновременно, но в ограниченном количестве.