int A = 0; int B = 0;
Executed in one thread:
A = 1; X = B;
Executed in another thread:
B = 1; Y = A;
It is possible for threads to finish with both X and Y containing 0.