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