volatile修饰符

一个定义为volatile的变量是说这变量可能会被意想不到地改变,编译器保证对此变量的读写操作都不会被优化.

volatile总是与优化有关,编译器有一种技术叫做数据流分析,分析程序中的变量在哪里赋值、在哪里使用、在哪里失效,分析结果可以用于常量合并,常量传播等优化,进一步可以死代码消除。但有时这些优化不是程序所需要的,这时可以用volatile关键字禁止做这些优化,volatile的字面含义是易变的。

你可能感兴趣的:(volatile)