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

Есть ли Semaphore в Python

Да, в Python есть Semaphore из модуля threading. Он используется для ограничения количества потоков, которые могут одновременно получить доступ к ресурсу.

Пример:

python
from threading import Semaphore, Thread
import time

sem = Semaphore(3) # Максимум 3 потока одновременно

def worker(thread_id):
with sem:
print(f"Поток {thread_id} получил доступ")
time.sleep(2)
print(f"Поток {thread_id} освобождает семафор")

threads = [Thread(target=worker, args=(i,)) for i in range(5)]
for t in threads:
t.start()
for t in threads:
t.join()

text

**Вывод:**  
Первые 3 потока получат доступ сразу, остальные ждут освобождения.  

Также есть `BoundedSemaphore`, который предотвращает случайное превышение начального значения счётчика.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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