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

Что такое Data Race

Data Race (гонка данных) — это ситуация в многопоточном программировании, когда два или более потока одновременно обращаются к одной переменной, и хотя бы один из них изменяет её. Это может привести к неопределённому поведению, так как порядок выполнения операций непредсказуем.

Пример в Python (с использованием threading):

python
import threading

counter = 0

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

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

for t in threads:
t.join()

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

text

Для предотвращения Data Race используют механизмы синхронизации:
- Блокировки (`threading.Lock`)
- Атомарные операции
- Использование потокобезопасных структур данных

В Python из-за GIL (Global Interpreter Lock) Data Race менее вероятны для CPU-операций, но возможны при работе с I/O или при использовании расширений на C.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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