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

Какие методы синхронизации потоков в Python тебе известны

В Python для синхронизации потоков используются:

  1. Lock (мьютекс) – базовый примитив, блокирует доступ к ресурсу:
python
from threading import Lock
lock = Lock()
with lock:
    # критическая секция
  1. RLock (реентерабельный lock) – позволяет одному потоку захватывать блокировку несколько раз.
  1. Semaphore – ограничивает количество потоков в критической секции:
python
from threading import Semaphore
sem = Semaphore(3)  # максимум 3 потока
sem.acquire()
# работа с ресурсом
sem.release()
  1. Event – механизм оповещения между потоками:
python
from threading import Event
event = Event()
event.wait()  # поток ждет
event.set()   # другой поток разблокирует ожидающих
  1. Condition – условная блокировка с ожиданием условия:
python
from threading import Condition
cond = Condition()
with cond:
    cond.wait()  # ждет notify()/notify_all()
  1. Barrier – синхронизирует группы потоков в точке встречи.

Для сложных сценариев лучше использовать threading или multiprocessing с учетом GIL.

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

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

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

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