volatile关键字是什么?( 四 )


变量声明为 volatile 类型时 。编译器与运行时都会注意到这个变量是共享的 。不会将该变量上的操作与其他内存操作一起重排序 。volatile 变量不会被缓存在寄存器或者对其他处理器不可见的地方 。因此在读取 volatile 类型的变量时总会返回最新写入的值 。
在访问 volatile 变量时不会执行加锁操作 。也就不会使执行线程阻塞 。因此 volatile 变量是比 sychronized 关键字更轻量级的同步机制 。
加锁机制既可以确保可见性和原子性 。而 volatile 变量只能确保可见性 。
想了解更多Java相关 。百度搜索圈T社区www.aiquanti.com 。免费视频教程 。纯干货

推荐阅读