volatile boolean inited = false;
//线程1:
context=loadContext();
inited=true;
//线程2:
while(!inited ){
sleep();
}
doSomethingwithconfig(context);
若没有volatile
context=loadContext();
inited=true;
//可能发生指令重排,变成
inited=true;
context=loadContext();
//(指令重排是对于本线程为了执行效率高,可能在不影响结果的前提下,交换代码的执行顺序)
//http://blog.csdn.net/zmx729618/article/details/78548110