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

Что такое Race Condition

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

Пример:

python
import threading

counter = 0

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

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

for thread in threads:
    thread.join()

print(counter)  # Может быть меньше 1000000 из-за race condition

Для предотвращения используют механизмы синхронизации:

  • Блокировки (threading.Lock())
  • Семафоры
  • Атомарные операции
  • Примитивы синхронизации из threading модуля
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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