码迷,mamicode.com
首页 > 其他好文 > 详细

volatile如何保证可见性和有序性的?

时间:2020-07-13 13:45:09      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:操作   ati   可见性   color   获取   排他性   上下文   轻量   变量   

volatile相当于轻量级锁

1,与锁不同的是,volatile不具有排他性,也不会导致上下文切换.

2,与锁相同的是,JVM实现volatile的有序性和可见性的保证也是借助内存屏障.

volatile变量写操作相当于释放锁,读操作相当于获得锁---JVM通过在volatile变量写之前插入释放屏障,在读之后插入获取屏障.

这种成对的释放屏障和获取屏障保证了volatile的有序性.

同样的,JVM在volatile变量写操作之后插入存储屏障,在读操作之前插入加载屏障,保证volatile变量的可见性

volatile如何保证可见性和有序性的?

标签:操作   ati   可见性   color   获取   排他性   上下文   轻量   变量   

原文地址:https://www.cnblogs.com/alenblue/p/13292576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!