volatile 与处理器的嗅探技术
在《java并发编程的艺术》这本书中,关于volatile的内存原理本质的描述如下:
有volatile变量修饰共享变量在编译器编译后,后多出一个“lock” 来(lock前缀指令相当于一个内存屏障,会强制将对缓存的修改操作写入主内存),该字符在多核处理器下回引发两个事件:
1.将当前处理器缓存行的数据写回系统内存;
2.这个写会内存的操作会使得其他处理器里缓存的该内存地址的数据无效。
在该书籍第三章中的描述如下:
1.当写一个volatile变量时,JMM(java共享内存模型)会把该线程对应的本地内存中的共享变量值刷新到主内存;
2.当读一个volatile变量时,JMM会把该线程对应的本地内存置为无效,线程接下来从主内存中读取共享变量。
在第三章中并未深入讲述JMM时如何将该线程对应的本地内存置为无效的,在第二章中,也只是一笔带过有如下描述:
1.每个处理器通过嗅探在总线上传播的数据来检查自己缓存的值是不是过期了,当处理器发现自己缓存行对应的内存地址被修改,就会将当前处理器的缓存行设置为无效状态, 当处理器对这个数据进行修改操作的时候,会重新从系统内存中吧数据读到处理器缓存行里。
2.处理器使用嗅探技术保证它的内部缓存,系统内存和其他处理器的缓存在总线上保持一致。
书中并没有明确说明,处理器将会在何时触发“嗅探”这个操作,但我在基于书本做出以下猜测:
volatile修饰的共享变量的写操作会触发“嗅探”,让处理器本地缓存中的volatile变量失效;
volatile 与处理器的嗅探技术相关推荐
- 32位ARM嵌入式处理器的调试技术
32位ARM嵌入式处理器的调试技术 https://blog.csdn.net/bekars/article/details/611072 摘要:针对32位ARM处理器开发过程中调试技术的研究,分析了 ...
- 警惕!已有人利用嗅探技术盗刷超过100万,这10招赶紧收藏!
手机信号从4G降为2G--收到来自银行.支付平台的各类短信验证码--账户被转空,手机莫名订购了一堆增值业务-- 还记得国庆期间"充电手机自动订总统套房"的新闻吗?深夜放在桌上充电的 ...
- 四信5G CPE高性能四核处理器高速Wi-Fi6技术 保障网络覆盖无忧
四信5G CPE搭载高性能四核处理器高速Wi-Fi6技术,保障网络覆盖无忧,适用于需要快速部署有线宽带网络.Wi-Fi 热点家用或商用场景等.实现办公/商铺/租房/展会/教育/房车出行等多场景快速灵活 ...
- Intel Core 2 Duo处理器DMI总线技术和i7处理器QPI总线技术的概述
Intel Core 2 Duo处理器的DMI(Direct Media Interface)总线技术和i7处理器的QPI(QuickPath Interconnect)总线技术的概述 总线的概念很简 ...
- 带你了解嵌入式处理器的流水线技术
01.为什么要引入流水线技术 嵌入式处理器执行指令时,一般步骤为:首先从存储器中读取指令,然后对该指令进行译码,识别出被执行的指令属于哪一种指令,然后再从指令中提取到操作数并进行组合,接着根据需要将 ...
- 无ARP欺骗嗅探技术
文/图 刘志生 ARP欺骗的攻击和防御技术都比较成熟了,杂志以前的文章也介绍得比较详细,这里就不再细述了.本文重点讲解如何不使用ARP欺骗进行嗅探以及会话劫持的技术原理,实际的攻击方法是进行MAC欺骗 ...
- 矩阵拼接_TEC无缝拼接矩阵切换器(处理器)的技术
无缝拼接矩阵切换器在工程方案的需求中不断的发展出新的技术以及新的系统出来,我们往往都比较在意画面的清晰度,分辨率的大小,显示画面的亮度,对比度等直观的信息.可是在拼接屏显示这个行业中,有一个最大的问题 ...
- Intel处理器电源管理技术(2) - 概述 - EIST P-State Turbo Boost HWP
Enhanced Intel SpeedStep Technology (EIST) Pentium M处理器引入了Enhanced Intel SpeedStep® Technology(缩写为EI ...
- Intel处理器电源管理技术(1) - 概述 - 8086/286/386SL/486SL APM ACPI
History & Overview Intel的8086与80286处理器并没有集成任何的电源管理技术.但是80286的确有一个全静态CMOS版本实现,主要用于电池供电的设备中,由富士通与I ...
最新文章
- Applese 的大奖
- ITK:与矢量型图像应用GradientRecursiveGaussianImageFilter
- 7-57 又来一个上三角数字三角形 (10 分)
- LinkedList方法源码
- Java系列(1) JavaEE架构
- 史上最全的 MySQL 高性能优化实战总结
- python生成矩阵_如何在Python中生成矩阵?
- 转载 VC轻松解析XML文件 - CMarkup类的使用方法
- 基于taskctl实现kettle任务调度
- 计算机与通信会议排名
- Python告诉你NBA球星都喜欢在哪个位置出手?
- 群晖nas介绍文档_我的NAS我的地盘 篇三:群晖NAS软件介绍与应用之DS file篇
- 电阻、电容、电感及其阻抗、容抗、感抗概念回顾
- 盘点一下分布式模式下的服务治理和监控优化方案
- Python的静态成员变量和非静态成员变量
- 七牛云 Java Web上传图片
- 小米平板android版本号,你的小米平板系统版本号是多少?
- python下载电影视频_python爬虫:抓取下载电影文件,合并ts文件为完整视频
- 【对标TensorFlow】阿里公开内部超大规模分布式机器学习平台,对此你怎么看?
- 关于存储芯片的入门基础知识