当一个对象的值可能会在编译器的控制或者检测之外被改变时,例如一个被系统时钟更新的变量,那么该对象应该被声明成volatile。因此,编译器执行的某些例行优化行为不能应用在已指定为volatile的对象上。
它的主要目的是提示编译器,该对象的值可能在编译器未检测到的情况下被改变。
当一个对象的值可能会在编译器的控制或者检测之外被改变时,例如一个被系统时钟更新的变量,那么该对象应该被声明成volatile。因此,编译器执行的某些例行优化行为不能应用在已指定为volatile的对象上。
它的主要目的是提示编译器,该对象的值可能在编译器未检测到的情况下被改变。