Встречается на собеседованиях • сегодня
Что предотвращает использование примитивов синхронизации
В Python примитивы синхронизации (например, Lock, RLock, Semaphore) предотвращают состояние гонки (race condition), когда несколько потоков одновременно пытаются изменить общие данные. Основные проблемы, которые они решают:
- Race Condition – когда результат выполнения зависит от порядка выполнения потоков.
- Data Corruption – одновременная запись в одну переменную разными потоками.
- Deadlocks – если неаккуратно использовать блокировки (например, захватывать
Lockбезrelease).
Пример с Lock:
python
from threading import Lock, Thread
counter = 0
lock = Lock()
def increment():
global counter
with lock: # Автоматически acquire/release
counter += 1
threads = [Thread(target=increment) for _ in range(100)]
[t.start() for t in threads]
[t.join() for t in threads]
print(counter) # Всегда 100Без Lock результат мог бы быть меньше 100 из-за race condition.

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