Что такое Race condition

Python Senior Без компании
Что такое Race condition
Ответы
Race condition — это ситуация, когда поведение программы зависит от порядка выполнения операций в нескольких потоках/процессах, что может привести к неожиданным результатам. Возникает, когда несколько потоков обращаются к общим данным без синхронизации, и хотя бы один поток изменяет эти данные. Пример: ``` 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 из-за race condition ``` Для предотвращения используют механизмы синхронизации: блокировки (`Lock`), семафоры, атомарные операции или thread-safe структуры данных. В примере выше можно добавить `Lock`: ``` lock = threading.Lock() def increment(): global counter for _ in range(100000): with lock: counter += 1 ```