Встречается на собеседованиях • сегодня
Что такое 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.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы