Data Races
A data race is a situation, in which at least two threads access a shared variable at the same time. At least one thread tries to modify the variable.
If your program has a data race, it has undefined behaviour. This means all outcomes are possible and therefore, reasoning about the program makes no sense anymore.
Let me show you a program with a data race.