volatile int m_i;和去掉volatile好象运行的效果是一样的,到底加这个关键字有什么作用
volatile说明一种特殊的变量,它的值随时可能变化。它一般用于一些特殊的程序,比如I/O设备驱动程序和共享内存应用程序等。
volatile说明一种特殊的变量,它的值可能由其他线程变化。
`while (!g_bFound)
{
wait;
}
这里g_bFound是由另外的线程来改变的,如果不说明为volatile的话编译器会发现循环体内部并没有改变这个值,会把它优化为一个死循环