volatile如何保证可见性和有序性的?
Posted alenblue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了volatile如何保证可见性和有序性的?相关的知识,希望对你有一定的参考价值。
volatile相当于轻量级锁
1,与锁不同的是,volatile不具有排他性,也不会导致上下文切换.
2,与锁相同的是,JVM实现volatile的有序性和可见性的保证也是借助内存屏障.
volatile变量写操作相当于释放锁,读操作相当于获得锁---JVM通过在volatile变量写之前插入释放屏障,在读之后插入获取屏障.
这种成对的释放屏障和获取屏障保证了volatile的有序性.
同样的,JVM在volatile变量写操作之后插入存储屏障,在读操作之前插入加载屏障,保证volatile变量的可见性
以上是关于volatile如何保证可见性和有序性的?的主要内容,如果未能解决你的问题,请参考以下文章