volatile做用: 做为指令关键字,确保本条指令不会受到编译器的优化而省略,并且要求每次直接读值。优化
定义:spa
volatile int nTest;
volatile关键字是一种类型修饰符,用它声明的类型变量表示能够被某些编译器未知的因素更改,好比:操做系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就再也不进行优化,从而能够提供对特殊地址的稳定访问。操作系统
上图能够发如今没有优化的状况下,编译器强制执行了a=10;这条语句,而后再输出a;而采用优化后并无执行a=10;直接输出了10;线程