Встречается на собеседованиях • сегодня
Что такое состояние гонки (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
интервью вопросы и ответы