2.4.2.4.2. Example: Effects Of Java Memory Ordering Model
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.