The following is from classical Concurency in Practice:
Concurency in Practice
When thread A writes to a volatile variable and subsequently thread B reads t
It means if you write to ten non-volatile variable and write to a volatile one, all the non-volatile variables must be set before the volatile one.
If you read the volatile variable and all the non-volatile ones you can be sure that the order won't be swapped around.