volatile关键字原理
来源:互联网 发布:网络备案登记管理规定 编辑:程序博客网 时间:2024/06/10 19:34
前提:1.带有缓存的cpu执行程序时,会提前将要执行的多条语句存入到缓存中,比如某些架构的cpu拥有3M的L1,L2,L3缓存。
2.带有LOCK前缀的汇编指令,会有两步操作a.将缓存行中的数据回写到系统内存;b.并且写回内存操作会使cpu中其他缓存了该内存地址的数据无效
当用volatile关键字修饰的变量在被JVM返回成汇编语言时,会生成带有Lock前缀的汇编指令。
带有LOCK 前缀的汇编指令,在运行的时候,如果是写到缓存,会同时将写动作及时写回到内存;并且同时将其他线程保存到其他缓存单元中的该变量及时修改。这样就保证了多线程在对一个变量的修改时能够保证同步修改,不至于出现一个线程修改变量,导致其他线程因为读取的是其他缓存单元或者从内存直接读而出现的变量修改不同步现象。
0 0
- volatile关键字原理
- volatile关键字实现原理
- volatile关键字的实现原理
- volatile关键字的作用、原理
- volatile关键字
- 关键字volatile
- volatile关键字
- volatile关键字
- volatile关键字
- volatile关键字
- volatile关键字
- volatile关键字
- volatile关键字
- volatile关键字
- volatile关键字
- volatile关键字
- 关键字volatile
- volatile关键字
- 自定义字符串定长大小判断my_strncmp()
- PHP学习记录
- Java UDP网络编程
- JSP九大内置对象
- GMTC全球移动技术大会2017专题专场介绍
- volatile关键字原理
- JAVA语言循环结束语句不同于C++之处-break,continue 标签
- 近期面试经历(一)
- JSP、JS和HTML的区别
- 欢迎使用CSDN-markdown编辑器
- java--------------华为--------------------字符个数统计
- 编译项目时OwinStartup冲突的解决办法
- 1.2 大型网站架构演化发展历程
- 白话阿里巴巴之Java开发规约