当前位置: 首页 > news >正文

阳新县建设局网站轻云服务器 多个网站

阳新县建设局网站,轻云服务器 多个网站,如何做百度网站推广,网站开发流程详解内存屏障类型表 StoreLoad Barriers是一个“全能型”的屏障,它同时具有其他3个屏障的效果。现代的多处理器大多支持该屏障(其他类型的屏障不一定被所有处理器支持)。执行该屏障开销会很昂贵,因为当前处理器通常要把写缓冲区中的数…

内存屏障类型表

在这里插入图片描述

StoreLoad Barriers是一个“全能型”的屏障,它同时具有其他3个屏障的效果。现代的多处理器大多支持该屏障(其他类型的屏障不一定被所有处理器支持)。执行该屏障开销会很昂贵,因为当前处理器通常要把写缓冲区中的数据全部刷新到内存中(Buffer Fully Flush)。

JMM如何实现volatile写/读的内存语义

重排序分为编译器重排序和处理器重排序。为了实现volatile内存语义,JMM会分别限制这两种类型的重排序类型。下表是JMM针对编译器制定的volatile重排序规则表
在这里插入图片描述
我们可以看出
·当第二个操作是volatile写时,不管第一个操作是什么,都不能重排序。这个规则确保volatile写之前的操作不会被编译器重排序到volatile写之后。
·当第一个操作是volatile读时,不管第二个操作是什么,都不能重排序。这个规则确保volatile读之后的操作不会被编译器重排序到volatile读之前。
·当第一个操作是volatile写,第二个操作是volatile读时,不能重排序。
为了实现volatile的内存语义,编译器在生成字节码时,会在指令序列中插入内存屏障来禁止特定类型的处理器重排序。对于编译器来说,发现一个最优布置来最小化插入屏障的总数几乎不可能。为此,JMM采取保守策略。下面是基于保守策略的JMM内存屏障插入策略。
·在每个volatile写操作的前面插入一个StoreStore屏障。
·在每个volatile写操作的后面插入一个StoreLoad屏障。
·在每个volatile读操作的后面插入一个LoadLoad屏障。
·在每个volatile读操作的后面插入一个LoadStore屏障。
上述内存屏障插入策略非常保守,但它可以保证在任意处理器平台,任意的程序中都能得到正确的volatile内存语义。
下面是保守策略下,volatile写插入内存屏障后生成的指令序列示意图
在这里插入图片描述
上图的StoreStore屏障可以保证在volatile写之前,其前面的所有普通写操作已经对任意处理器可见了。这是因为 StoreStore屏障将保障上面所有的普通在volatile写之前刷新到主内存。(个人理解是防止volatile写普通写再把volatile写覆盖了,所以让他们先写
这里比较有意思的是,volatile写后面的 StoreLoad 屏障。此屏障的作用是避免volatile与后面可能有的volatile读/写操作重排序。(个人理解就是StoreLoad前的读写全处理干净了,StoreLoad后面相当于重新开始和前面不会产生一点关系)因为编译器常常无法准确判断在一个volatile写的后面是否需要插入一个StoreLoad屏障(比如,一个volatile写之后方法立即return)。为了保证能正确实现volatile的内存语义,JMM在采取了保守策略:在每个volatile写的后面,或者在每个volatile读的前面插入一个StoreLoad屏障。从整体执行效率的角度考虑,JMM最终选择了在每个volatile写的后面插入一个StoreLoad屏障。因为volatile写-读内存语义的常见使用模式是:一个写线程写volatile变量,多个读线程读同一个volatile变量。当读线程的数量大大超过写线程时,选择在volatile写之后插入StoreLoad屏障将带来可观的执行效率的提升。从这里可以看到JMM在实现上的一个特点:首先确保正确性,然后再去追求执行效率
下面是在保守策略下,volatile读插入内存屏障后生成的指令序列示意图,如下图所示。
在这里插入图片描述
LoadLoad 屏障用来禁止处理器把上面的volatile与下面的普通重排序LoadStore 屏障用来禁止处理器把上面的volatile与下面的普通重排序。
由于volatile仅仅保证对单个volatile变量的读/写具有原子性,而锁的互斥执行的特性可以确保对整个临界区代码的执行具有原子性。在功能上,锁比volatile更强大;在可伸缩性和执行性能上,volatile更有优势。如果读者想在程序中用volatile代替锁,请一定谨慎,具体详情请参阅Brian Goetz的文章《Java理论与实践:正确使用Volatile变量》。

-----------------------------------------------------------------------------摘自 书名:Java并发编程的艺术 作者:方腾飞;魏鹏;程晓明
在这里插入图片描述

http://www.yayakq.cn/news/636794/

相关文章:

  • 鑫瀚通网站建设北京给公司做网站多少钱
  • 天津建设科技杂志的官方网站信阳有什么推广平台
  • 南安住房与城乡建设部网站wordpress首页在哪里修改
  • 推广营销软件app免费seo网站诊断免费
  • 网站排名稳定后后期如何优化防城港seo公司
  • 做网站的需求手表购买网站
  • 北京做网站哪家好上海公司企业网站怎么做
  • 有哪些网站可以做seo推广毕设敦煌壁画网站开发选题背景
  • 网站建设广找金手指排名贰肆苏州艺术家网站建设
  • 中小型网站建设的基本流程有哪些有趣的网站
  • 中国做外贸的网站网站开发框架是什么
  • 做网站图片分辨率多少小程序有做门户网站
  • 湖北网站推广方案做网站要学
  • 2021网站建设前景怎么样免费给别人开发网站
  • 织梦个人网站模版asp做网站搜索
  • 中建交通建设集团有限公司网站福州网seo
  • wordpress备份文件谷歌seo怎么优化
  • 网站制作中需要注意的地方wordpress 只看到一个主题
  • 北京适合穷人逛的商场台州百度搜索优化
  • 黄岩网站建设兼职wordpress主机空间选择
  • 怎么在电脑上自己做网站重庆有没有做网站的
  • 兰州市政建设集团网站佳木斯建设工程交易中心网站
  • 高仿奢侈手表网站做网站在阿里云买什么软件
  • 做英文网站地图用自己电脑做网站的空间
  • 自己组装电脑做网站服务器一个企业做网站需要什么资料
  • 滨州北京网站建设个体户 建设网站
  • 建设电子商务网站的预期收益中国接单外发加工网
  • 建站公司排名 中企动力网站做项目
  • 梨树县交通建设网站个人网站建立策划书前言
  • 上海网站建设上海网站制作北京云网站建设