热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

volatile语句的负载障碍在哪里?

如何解决《volatile语句的负载障碍在哪里?》经验,为你挑选了1个好方法。



1> veritas..:

英特尔处理器x86具有强大的内存模型.

因此,所有屏障StoreStore,LoadLoad,LoadStore都是x86上的no-op. StoreLoad除外,可以通过 mfence或cpuid或锁定insn实现.您已经可以使用汇编代码确认.其他障碍只是意味着限制编译器优化和转换,因此它们不会破坏java内存模型规范.

当你在intel处理器上运行时,我假设它的x86.

请阅读

    http://gee.cs.oswego.edu/dl/jmm/cookbook.html供参考.

    http://psy-lob-saw.blogspot.com/2013/08/memory-barriers-are-not-free.html

    http://jsr166-concurrency.10961.n7.nabble.com/x86-NOOP-memory-barriers-td9991.html

Lock不是指令,而是指令前缀(表现为storeLoad屏障).

    "锁定"指令在x86汇编中意味着什么?

    为什么我们需要在CMPXCHG之前使用锁前缀


推荐阅读
author-avatar
LinHrU
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有