Встречается на собеседованиях • сегодня
Есть ли 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`, который предотвращает случайное превышение начального значения счётчика.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы