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

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

Семафор в Python используется для контроля доступа к общему ресурсу в многопоточной или многопроцессорной среде. Он ограничивает количество потоков/процессов, которые могут одновременно работать с ресурсом.

Основные особенности:

  • Счетчик семафора уменьшается при acquire() и увеличивается при release()
  • Если счетчик = 0, поток блокируется до освобождения
  • Полезен для ограничения параллельных соединений, доступа к API и т.д.

Пример с 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(10)]
for t in threads:
    t.start()
for t in threads:
    t.join()

В отличие от Lock, семафор позволяет нескольким потокам работать одновременно, но в ограниченном количестве.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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