- 4
- 0
- 约1.49万字
- 约 7页
- 2017-05-27 发布于湖北
- 举报
HYPERLINK /
深入Java底层:内存屏障与JVM并发详解
内存屏障,又称内存栅栏,是一组处理器指令,用于实现对内存操作的顺序限制。本文假定读者已经充分掌握了相关概念和Java内存模型,不讨论并发互斥、并行机制和原子性。内存屏障用来实现并发编程中称为可见性(visibility)的同样重要的作用。
内存屏障为何重要?
对主存的一次访问一般花费硬件的数百次时钟周期。处理器通过缓存(caching)能够从数量级上降低内存延迟的成本这些缓存为了性能重新排列待定内存操 作的顺序。也就是说,程序的读写操作不一定会按照它要求处理器的顺序执行。当数据是不可变的,同时/或者数据限制在线程范围内,这些优化是无害的。
如果把这些优化与对称多处理(symmetric multi-processing)和共享可变状态(shared mutable state)结合,那么就是一场噩梦。当基于共享可变状态的内存操作被重新排序时,程序可能行为不定。一个线程写入的数据可能被其他线程可见,原因是数据 写入的顺序不一致。适当的放置内存屏障通过强制处理器顺序执行待定的内存操作来避免这个问题。
内存屏障的协调作用
内存屏障不直接由JVM暴露,相反它们被JVM插入到指令序列中以维持语言层并发原语的语义。我们研究几个简单Java程序的源代码和汇编指令。首先快速看一下Dekker算法中
您可能关注的文档
- 第三章 年制呼吸各论.ppt
- 第7篇 革兰氏阳性球菌.ppt
- 胰岛素使用常见问题和对策.pdf
- 教案2神经肌肉详解.ppt
- 呼吸系统的疾病总论.ppt
- 变态心理学5-神经症及癔症(唐).pdf
- 分子营养及健康饮食.docx
- 青霉素皮试药液配制方法课件.doc
- 肝性骨病的发病机制和诊疗进展.doc
- 迷走神经对心脏心率,血压与呼吸道调节.doc
- 合规红线与避坑实操手册(2026)《NYT 559-2002禽曲霉菌病诊断技术》.pptx
- 合规红线与避坑实操手册(2026)《QBT 1044-1991印刷开槽机》.pptx
- 2026—2028年中国室内照明灯具行业生态全景与战略纵深研究报告:政策、技术、资本与消费四重驱动下的产业重构与机遇地图.pptx
- 2026—2028年中国石制家具行业生态全景与战略纵深研究报告:政策、技术、资本与消费四重驱动下的产业重构与机遇地图.pptx
- 合规红线与避坑实操手册(2026)《GBT 6247.2-2013凿岩机械与便携式动力工具 术语 第2部分:液压工具》.pptx
- 合规红线与避坑实操手册(2026)《GBT 7701.1-2008煤质颗粒活性炭 气相用煤质颗粒活性炭》.pptx
- 合规红线与避坑实操手册(2026)《JBT 10271-2001数控机床直流主轴电动机通用技术条件》.pptx
- 合规红线与避坑实操手册(2026)《GBT 22468-2008家禽及禽肉兽医卫生监控技术规范》.pptx
- 合规红线与避坑实操手册(2026)《GBT 1472-2014铅及铅锑合金管》.pptx
- 合规红线与避坑实操手册(2026)《GBT 5009.221-2008粮谷中敌草快残留量的测定》.pptx
原创力文档

文档评论(0)