在多线程编程中,用volatile关键字修饰的变量,不会被编译器优化,每次读取都是从内存读取,而不会利用 cache中的原有数值,以适应在多线程的变量未知在何时发生变化。
准确的说:一个定义为volatile的变量,优化器是用到这个变量的 时候必须每次小心的重新读取这个变量,而不是使用寄存器里的备份。
在多线程编程中,用volatile关键字修饰的变量,不会被编译器优化,每次读取都是从内存读取,而不会利用 cache中的原有数值,以适应在多线程的变量未知在何时发生变化。
准确的说:一个定义为volatile的变量,优化器是用到这个变量的 时候必须每次小心的重新读取这个变量,而不是使用寄存器里的备份。