Встречается на 3% собеседований по Python
Что такое состояние гонки (Race condition)
Состояние гонки (Race condition) — это ошибка, возникающая, когда поведение программы зависит от порядка выполнения потоков или процессов, которые конкурируют за доступ к общим данным. Если результат зависит от непредсказуемой последовательности событий, это может привести к неожиданным и ошибочным результатам.
Пример:
python
import threading
counter = 0
def increment():
global counter
for _ in range(100000):
counter += 1
threads = []
for _ in range(10):
thread = threading.Thread(target=increment)
threads.append(thread)
thread.start()
for thread in threads:
thread.join()
print(counter) # Может быть меньше 1_000_000Почему возникает:
Операция counter += 1 не атомарна:
- Чтение значения
counter - Увеличение на 1
- Запись нового значения
Если два потока одновременно читают одно значение, оба увеличат его на 1 и запишут одинаковый результат, потеряв одно изменение.
Решение:
Использовать блокировки (threading.Lock), атомарные операции или thread-safe структуры.

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