Встречается на 1% собеседований по Python
Где встречается гонка данных в Python
Гонка данных (race condition) возникает, когда несколько потоков/процессов одновременно обращаются к общим данным, и результат зависит от порядка выполнения операций. В Python это особенно актуально из-за GIL (Global Interpreter Lock), который не полностью защищает от race conditions.
Типичные сценарии:
- Модификация общей переменной из нескольких потоков
- Чтение данных во время их изменения другим потоком
- Неатомарные операции (например,
+=)
Пример с потоками:
python
import threading
counter = 0
def increment():
global counter
for _ in range(100000):
counter += 1
threads = [threading.Thread(target=increment) for _ in range(5)]
for t in threads:
t.start()
for t in threads:
t.join()
print(counter) # Результат будет меньше 500000 из-за гонкиКак избежать:
- Использовать
threading.Lock() - Применять атомарные операции из модуля
queue - Использовать процессы вместо потоков (multiprocessing)

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