Volatile变量 在程序设计中尤其是在C语言CC和Java语言中使用volatile关键字声明的变量或对象通常具有与优化多线程相关的特殊属性通常volatile关键字是用来阻止伪编译器因誤認某段程式碼無法被程式碼本身所改變而造成的過度優化如在C语言中volatile关键字可以用来提醒编译器它后面所定义的变量随时有可能改变因此编译后的程序每次需要存储或读取这个变量的时候都会直接从变量地址中读取数据如果没有volatile关键字则编译器可能优化读取和存储可能暂时使用寄存器中的值如果这个变量由别的程序更新了的话将出现不一致的现象 在C环境中volatile关键字的真实定义和适用范围经常被误解虽然CC和Java都保留了C中的volatile关键字但在这些编程语言中volatile的用法和语义却大相径庭