并发(三):volatile

66 阅读1分钟

cpu的高速缓存导致了可见性问题,为了解决cpu高速缓存带来的可见性问题,引入了storebuffer,使用storebuffer之后又出现了指令重排序问题,为了解决指令重排序问题,又引入了内存屏障。volatile的底层原理就是在指令执行期间加上内存屏障,避免了指令重排序问题。