Sobes.tech
Back to questions
Middle
6

Что такое Race Condition простыми словами?

Companies where asked
aic

Answer from AI

sobes.tech AI

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

Простой пример: два потока одновременно пытаются увеличить счетчик. Если оба прочитают старое значение, увеличат его и запишут обратно, итоговое значение увеличится только на 1 вместо 2.

В итоге из-за одновременного доступа к общему ресурсу без синхронизации данные могут стать некорректными.

Чтобы избежать race condition, используют механизмы синхронизации: мьютексы, блокировки, атомарные операции.

Пример на Python с использованием мьютекса:

import threading

counter = 0
lock = threading.Lock()

def increment():
    global counter
    with lock:
        temp = counter
        temp += 1
        counter = temp

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

print(counter)  # Ожидается 1000