Встречается на собеседованиях • сегодня
Где встречается Race Condition
Race Condition возникает, когда несколько потоков/процессов одновременно обращаются к общим данным, и результат зависит от порядка выполнения операций. Частые сценарии:
- Банковские транзакции: два потока одновременно снимают деньги с одного счета, но проверка баланса происходит до списания.
python
balance = 100
def withdraw(amount):
global balance
if balance >= amount:
# Между проверкой и списанием может вклиниться другой поток
balance -= amount-
Счетчики/агрегация: несколько воркеров инкрементят общий счетчик.
-
Кэширование: два запроса одновременно проверяют кэш, не находят данные и начинают вычисления.
-
Инициализация: проверка
if not initializedможет пройти в нескольких потоках до установки флага.
Для предотвращения используют блокировки (Lock, RLock), атомарные операции, транзакции или thread-safe структуры (Queue). В asyncio - аналогичные механизмы, но без GIL.

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