Встречается на собеседованиях • сегодня
Какие знаешь примитивы синхронизации
В Python основные примитивы синхронизации из модуля threading:
- Lock - базовый мьютекс (блокировка). Позволяет только одному потоку выполнять код.
python
lock = threading.Lock()
with lock:
# критическая секция- RLock - реентерабельный лок. Позволяет одному потоку захватывать его несколько раз.
- Semaphore - ограничивает количество потоков, которые могут получить доступ к ресурсу.
python
sem = threading.Semaphore(3) # максимум 3 потока
with sem:
# работа с ресурсом- Event - механизм оповещения между потоками.
python
event = threading.Event()
# поток 1 ждет
event.wait()
# поток 2 устанавливает
event.set()- Condition - более сложный механизм ожидания/оповещения, связанный с блокировкой.
python
cond = threading.Condition()
with cond:
while not resource_available:
cond.wait()
# работа с ресурсом- Barrier - синхронизирует группу потоков в определенной точке.
Для межпроцессной синхронизации аналогичные примитивы есть в модуле multiprocessing.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы