某些语言提供了一个volatile修饰符,它被描述为在读取支持variables的内存之前执行“读取内存障碍”。 读取内存屏障通常被描述为确保CPU在屏障之前执行读取之前所请求的读取,然后在屏障之后执行读取请求的方式。 但是,使用这个定义,似乎仍然可以读取陈旧的价值。 换句话说,以某一顺序执行读取似乎并不意味着必须查阅主存储器或其他CPU以确保读取的后续值实际上反映了在读取屏障时系统中的最新值或者在阅读障碍。 那么,volatile是否确实保证读取的是最新的值,或者只是读取的值至less与屏障之前的读取值一样是最新的(gasp!)。 还是其他一些解释? 这个答案的实际含义是什么?