A condition in concurrent programming where two or more threads access shared data at the same time, and at least one thread modifies the data, leading to unpredictable results.
"Avoiding data races is crucial for the correctness of multithreaded applications, requiring careful synchronization of access to shared resources."