But race conditions can be at their peak when there is load.
Say thread A does some for and enters a critical section named AA.
At the same time, thread B is inside critical section AA and performing some work, but before it leaves, it waits for an event named BB.
Thread A waits for thread B to exit the critical section AA. Inside that critical section AA, thread A signals the event BB that would release thread B.
Thread B would then exit critical section AA and allow thread A to continue.

But unfortunately, this doesn't happen. Thread A comes to the critical section AA, then falls asleep since thread B is inside it. Thread B then waits for an event to be signaled, so it falls asleep, inside the critical section AA, but that event will never be signaled, because thread A will signal it, but it's asleep. So you get a problem.

Now, what if A actually gets to the critical section first? Then everything is fine since it can signal the event BB and thread B can proceed as normal.
When there's high load, threads can get less time, and it's a bigger chance thread B might get there before thread A.

It's called a race condition.