volatile理解

  • volatile关键字声明的变量或对象直接由存储器读写,即意味着,这之后每次读写该变量,都会直接从变量地址中读取数据,防止编译器使用寄存器中的值。
  • volatile int i; int a,b;… a=i; b=i;
  • 上面所示程序,如果变量i没有volatile声明,则b的赋值可能直接由上一语句执行的一样,即出现a等于b,然而可能此时i的值已经发生了改变。