A race condition occurs when multiple threads access shared data concurrently without proper synchronization, leading to unpredictable results. The 2003 blackout investigation identified race conditions in the alarm system software that failed to alert operators. Deadlock (A) is different - threads waiting indefinitely for each other.