今天在看《STL源码剖析》的时候,发现有一个关键字volatile,不明白什么意思,在Goole上搜了一下,才明白什么它的作用:
volatile可以用来修饰变量以及函数,用来告诉编译器该变量随时可能被某些编译器未知的因素改变,例如多线程、硬件、操作系统等,因此在它被使用的过程中不需要对被修改的变量或者函数进行优化,也就是说每次都必须从它所在的内存中获取数据而不是从寄存器中获取被缓存的数据。
具体的测试代码可以参考: http://blog.vckbase.com/iwaswzq/archive/2004/12/05/1896.aspx
volatile可以用来修饰变量以及函数,用来告诉编译器该变量随时可能被某些编译器未知的因素改变,例如多线程、硬件、操作系统等,因此在它被使用的过程中不需要对被修改的变量或者函数进行优化,也就是说每次都必须从它所在的内存中获取数据而不是从寄存器中获取被缓存的数据。
具体的测试代码可以参考: http://blog.vckbase.com/iwaswzq/archive/2004/12/05/1896.aspx