volatile的原理和使用 原理 1 解决并发编程的可见性和有序性问题 2 CPU引进高速缓存缓解内存与CPU之间的速度差异,出现缓存一致性问题,解决缓存一致性问题引进锁总线或者锁缓存行,锁缓存行需要配合缓存一致性协议比如mesi协议 。为了优化mesi协议的效率问题,引进了写缓冲和无效队列,产生了有序性问题。为了解决有序性问题,产生了内存屏障。volatile在操作系统底层是内存屏障原语 。解决可见性和有序性都依赖于内存屏障的使用。 使用 volatile关键字用于修饰类变量或者成员变量,可以修饰基本数据类型和引用类型和数组类型。