Встречается на собеседованиях • сегодня

Где встречается гонка данных в 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)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы