java并发中的volatile的关键字
来源:互联网 发布:苹果手机二维码软件 编辑:程序博客网 时间:2024/06/06 07:22
volitale简单介绍:
轻量级synchronized,保证了在多处理器中共享变量的可见性
volatile实现的内存语义:
当一个线程对一个volatile变量进行写操作时,写操作完后必须立刻刷回内存,并且其他线程缓存区中的值将无效,若对值进行修改必须重新从系统内存中读取。
volatile实现原理:所有的线程最终的执行都是在cpu调度完成的。(runnable–>thread–>kernel—>cpu)jvm将字节码转化为汇编语言在cpu上执行,在cpu上,当对volatile修饰的变量进行写操作时,jvm会向操作系统发送一条会lock前缀的指令。lock前缀的指令在多处理器下会引发两件事:
1):将当前处理器缓存行的数据写回到主内存
2):这个写回内存的操作会使在其他cpu里缓存了该内存地址的数据无效
如何保证缓存数据的一致性:每个处理器通过嗅探在总线上传播的数据来检查自己缓存的值是不是过期了,当处理器发现自己缓存行对应的内存地址被修改,就会将当前处理器的缓存行设置为无效状态。
阅读全文
0 0
- java并发中的volatile的关键字
- java并发编程 -volatile关键字
- java并发-Volatile关键字
- java并发(volatile关键字)
- java并发编程---volatile关键字
- Java 并发:volatile 关键字解析
- java并发编程volatile关键字
- Java 并发:volatile 关键字解析
- java并发1--volatile关键字
- Java并发编程:volatile关键字
- Java高并发--volatile关键字
- Java并发编程------volatile关键字
- Java中的volatile关键字
- Java中的volatile关键字
- Java中的volatile关键字
- Java中的volatile关键字
- Java中的volatile关键字
- Java中的volatile关键字
- 机器学习_Titanic: Machine Learning from Disaster
- MIPS+贪心 数列极差
- 算法:(贪心算法)-程序存储问题
- 大数阶乘问题(来自大佬博客的方法)
- H5/C3之自定义动画+多媒体查询
- java并发中的volatile的关键字
- 【mac+Android Studio】搭建Jenkins+svn+Android Studio+发布到蒲公英+发邮件+findbugs
- 扫盲移动端车牌识别,多领域应用延伸
- oracle元数据
- CSS3
- 欧盟无线CE-RED认证
- C# WEBSOCKET FLECK 调用非托管C++ DLL 实现通信(使用STRINGBUILDER接收)
- 文章标题
- Python升级3.6 强力Django+杀手级Xadmin打造在线教育平台