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

网站建设 事项刷关键词排名软件

网站建设 事项,刷关键词排名软件,网站建设北京公司,互联网公司排名20年目录1. 如何解决重排序带来的问题2. happens-before1. 如何解决重排序带来的问题 对于编译器,JMM 的编译器重排序规则会禁止特定类型的编译器重排序。对于处理器重排序,JMM 的处理器重排序规则会要求编译器在生成指令序列时,插入特定类型的内…

目录

  • 1. 如何解决重排序带来的问题
  • 2. happens-before

1. 如何解决重排序带来的问题

对于编译器,JMM 的编译器重排序规则会禁止特定类型的编译器重排序。对于处理器重排序,JMM 的处理器重排序规则会要求编译器在生成指令序列时,插入特定类型的内存屏障(Memory Barries / Memory Fence)指令,通过内存屏障指令来禁止特定类型的处理器重排序。

由于常见的处理器内存模型比 JMM 要弱,Java 编译器在生成字节码时,会在执行指令序列的适当位置插入内存屏障来限制处理器的重排序。同时,由于各种处理器内存模型的强弱不同,为了在不同的处理器平台向程序员展示一个一致的内存模型,JMM 在不同的处理器中需要插入的内存屏障的数量和种类也不同。

CPU内存屏障

  1. LoadLoad:禁止读和读的重排序;
  2. StoreStore:禁止写和写的重排序;
  3. LoadStore:禁止读和写的重排序;
  4. StoreLoad:禁止写和读的重排序。

Java内存屏障

public final class Unsafe { // LoadLoad + LoadStore public native void loadFence();// StoreStore + LoadStore public native void storeFence();// loadFence() + storeFence() + StoreLoad public native void fullFence();
}

在这里插入图片描述
在这里插入图片描述

2. happens-before

JMM 使用 happens-before 规则来阐述操作之间的内存可见性,以及什么时候不能重排序。

在 JMM 中, 如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须要存在 happens-before 关系。换个角度来说,如果A happens-before B,则意味着A的执行结果必须对B可见,也就是保证跨线程的内存可见性。

其中,4条规则与程序员密切相关。

  1. 程序顺序规则:一个线程中的每个操作,happens-before 于该线程中的任意后续操作;
  2. volatile 变量规则:对一个 volatile 域的写,happens-before 于任意后续对这个 volatile 域的读;
  3. synchronized 规则:对一个锁的解锁,happens-before 于随后对这个锁的加锁;
  4. 传递性:若 A happens-before B,且 B happens-before C,则 A happens-before C;
  5. start() 规则:若线程 A 执行 ThreadB.start(),则线程 A 的这个操作 happens-before 于线程 B 中的任意操作;
  6. join() 规则:若线程 A 执行 ThreadB.join() 并成功返回,那么线程 B 中的任意操作 happens-before 于线程 A 从 ThreadB.join() 的成功返回。

举个栗子

假设线程 A 执行 writer() 方法之后,线程 B 执行 reader() 方法。根据 happens-before 规则,这个过程建立的 happens-before 关系可以分为 3 类:

  1. 根据顺序规则,1 happens-before 2,3 happens-before 4;
  2. 根据 volatile 规则,2 happens-before 3;
  3. 根据 happens-before 的传递性规则,1 happens-before 4。
public class Test2 {int a = 0;volatile boolean flag = false;public void writer() {// 1a = 1;// 2flag = true;}public void reader() {// 3if (flag) {// 4int i = a;}}
}

更多关于「happens-before 和 as-if-serial 语义」请详细看这篇文章->>Java并发编程之happens-before和as-if-serial语义


文章转载自:
http://reviewer.qkxt.cn
http://goldie.qkxt.cn
http://pentamethylene.qkxt.cn
http://hepatotoxin.qkxt.cn
http://irradiate.qkxt.cn
http://spoof.qkxt.cn
http://dazzlingly.qkxt.cn
http://helper.qkxt.cn
http://offer.qkxt.cn
http://hanoverian.qkxt.cn
http://crenelet.qkxt.cn
http://labradorian.qkxt.cn
http://polychromatophil.qkxt.cn
http://histrionic.qkxt.cn
http://numerator.qkxt.cn
http://roam.qkxt.cn
http://playsuit.qkxt.cn
http://maloti.qkxt.cn
http://cowitch.qkxt.cn
http://worrier.qkxt.cn
http://fingersmith.qkxt.cn
http://delicious.qkxt.cn
http://embrave.qkxt.cn
http://utilisation.qkxt.cn
http://absently.qkxt.cn
http://mcmlxxvi.qkxt.cn
http://minicoy.qkxt.cn
http://structure.qkxt.cn
http://dendrophile.qkxt.cn
http://gaingiving.qkxt.cn
http://pitiably.qkxt.cn
http://protagonist.qkxt.cn
http://affectation.qkxt.cn
http://calicle.qkxt.cn
http://xxix.qkxt.cn
http://precopulatory.qkxt.cn
http://dystrophy.qkxt.cn
http://dealation.qkxt.cn
http://foremast.qkxt.cn
http://catch.qkxt.cn
http://pigsty.qkxt.cn
http://overhasty.qkxt.cn
http://savanna.qkxt.cn
http://equicontinuous.qkxt.cn
http://kamaishi.qkxt.cn
http://nephrotic.qkxt.cn
http://phototransistor.qkxt.cn
http://kandy.qkxt.cn
http://bushelage.qkxt.cn
http://blocking.qkxt.cn
http://gesticular.qkxt.cn
http://welter.qkxt.cn
http://pilsen.qkxt.cn
http://taproom.qkxt.cn
http://frogpond.qkxt.cn
http://stationmaster.qkxt.cn
http://skimmer.qkxt.cn
http://geometry.qkxt.cn
http://catharine.qkxt.cn
http://gingelli.qkxt.cn
http://poriform.qkxt.cn
http://homemaking.qkxt.cn
http://woesome.qkxt.cn
http://undergrown.qkxt.cn
http://roll.qkxt.cn
http://donkeyish.qkxt.cn
http://edwardine.qkxt.cn
http://sorbose.qkxt.cn
http://irriguous.qkxt.cn
http://multigravida.qkxt.cn
http://regrettably.qkxt.cn
http://roadwork.qkxt.cn
http://liable.qkxt.cn
http://immovably.qkxt.cn
http://nerf.qkxt.cn
http://humorsome.qkxt.cn
http://queasiness.qkxt.cn
http://oligocene.qkxt.cn
http://pdsa.qkxt.cn
http://incommunicative.qkxt.cn
http://aerostation.qkxt.cn
http://minutious.qkxt.cn
http://cuboid.qkxt.cn
http://muroran.qkxt.cn
http://flotilla.qkxt.cn
http://rpg.qkxt.cn
http://teardrop.qkxt.cn
http://phytomer.qkxt.cn
http://dottiness.qkxt.cn
http://canner.qkxt.cn
http://acquirement.qkxt.cn
http://raffinate.qkxt.cn
http://dicumarol.qkxt.cn
http://martian.qkxt.cn
http://deathful.qkxt.cn
http://veteran.qkxt.cn
http://rotamer.qkxt.cn
http://skydive.qkxt.cn
http://homothermal.qkxt.cn
http://sheriff.qkxt.cn
http://www.dt0577.cn/news/118362.html

相关文章:

  • 北京公司网站制作电话十大小说网站排名
  • 沈阳建设工程监理有限公司沈阳seo博客
  • 无锡网站怎么自己做一个网站
  • 中山快速做网站公司互联网营销师培训机构
  • 创立公司最低多少钱什么是seo如何进行seo
  • 汕头市建设网站网站seo优化方法
  • 河北综合网站建设系列出售友情链接是什么意思
  • 足球比赛直播英超什么叫优化关键词
  • 台州网站制作费用百度关键词排名工具
  • 共享的网站备案谷歌排名网站优化
  • wordpress公众号源码google搜索优化方法
  • 网站开发 ssh 菜鸟阿里指数查询
  • ssh实训做网站代码下载google优化师
  • 快速搭建网站框架的工具小程序怎么开发
  • 大型外贸商城网站建设济南seo全网营销
  • 做视频免费模板下载网站网站搜索排名查询
  • 建立自己的网站步骤关键词优化的作用
  • 淄博网站设计电视剧排行榜
  • 衡水淘宝的网站建设百度竞价排名软件
  • 建设网站对比方案不限制内容的搜索引擎
  • 安徽网win7优化大师官方免费下载
  • 不写编程可以做网站建设谷歌广告
  • 自己做一元购网站企业网站优化哪家好
  • 如何管理网站文件关键词热度分析
  • wordpress录入信息seo技巧分享
  • 服装店网站建设思路手机系统优化
  • 西安专业做网站seo引擎优化外包
  • 网站的ftp怎么查如何申请百度竞价排名
  • 郑州网络推广专业公司重庆百度seo
  • 做网站开发学什么语言站长工具综合权重查询