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

Что такое гонка данных в Python

Гонка данных (race condition) возникает, когда несколько потоков или процессов одновременно обращаются к общим данным, и результат выполнения зависит от порядка выполнения операций. Это может привести к неожиданным ошибкам и неконсистентности данных.

Пример с кодом:

python
import threading

counter = 0

def increment():
    global counter
    for _ in range(100000):
        counter += 1

threads = []
for _ in range(5):
    t = threading.Thread(target=increment)
    threads.append(t)
    t.start()

for t in threads:
    t.join()

print(counter)  # Результат может быть меньше 500000

Как избежать:

  1. Использовать блокировки (threading.Lock)
  2. Применять потокобезопасные структуры из модуля queue
  3. Использовать механизмы синхронизации (RLock, Semaphore)
  4. Рассмотреть альтернативы (асинхронность, multiprocessing с разделяемой памятью)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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