Middle
What is a Race Condition in simple terms?
sobes.tech AI
Answer from AI
Race Condition is a situation where the outcome of a program depends on the order of execution of multiple parallel operations, and this order is unpredictable.
A simple example: two threads try to increment a counter simultaneously. If both read the old value, increment it, and write it back, the final value will only increase by 1 instead of 2.
As a result, due to concurrent access to a shared resource without synchronization, data can become incorrect.
To avoid race conditions, synchronization mechanisms are used: mutexes, locks, atomic operations.
Example in Python using a mutex:
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) # Expected 1000