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

网站素材 下载新冠咳嗽怎么办

网站素材 下载,新冠咳嗽怎么办,青岛做网站价格,培训网站建设方案书volatile原理 volatile的底层实现原理是内存屏障,Memory Barrier(Memory Fence) 对volatile变量的写指令后会加入写屏障 对volatile变量的读指令前会加入读屏障 如何保证可见性 写屏障保证在该屏障之前的,对共享变量的改动,都同步到主存当中 public void actor2(I_Resu…

volatile原理

volatile的底层实现原理是内存屏障,Memory Barrier(Memory Fence)

· 对volatile变量的写指令后会加入写屏障

· 对volatile变量的读指令前会加入读屏障

如何保证可见性

写屏障保证在该屏障之前的,对共享变量的改动,都同步到主存当中

public void actor2(I_Result r){num = 2;ready = true;// ready 是volatile 赋值带写屏障//写屏障
}

而读屏障保证在该屏障之后,对共享变量的读取,加载的是主存中最新数据

public void actor1(I_Result r){//读屏障//ready 是 volatile 读取值带读屏障if(ready){r.r1 = num + num;}else{r.r1 = 1;}
}

在这里插入图片描述

如何保证有序性

写屏障会确保指令重排序时,不会将写屏障之前的代码排在写屏障之后

public void actor2(I_Result r){num = 2;ready = true;// ready 是volatile 赋值带写屏障//写屏障
}

读屏障会确保指令重排序时,不会将读屏障之后的代码排在读屏障之前

public void actor1(I_Result r){//读屏障//ready 是 volatile 读取值带读屏障if(ready){r.r1 = num + num;}else{r.r1 = 1;}
}

写屏障仅仅是保证之后的读能够读到最新结果,但不能保证读跑到它前面去

而有序性的保证也只能保证了本线程内相关代码不被重排序

double-checked locking 问题

以著名的double-checked locking 单例模式为例

public final class Singleton{private Singleton(){}private static Singleton INSTANCE = null;public static Singleton getInstance(){// 首次访问会同步,而之后的使用没有synchronizedif(INSTANCE == null){synchronized(Singleton.class){if(INSTANCE == null){INSTANCE = new Singleton();}}}    return INSTANCE;}
}

以上的实现特点是:

懒惰实例化

首次使用getInstance()才会调用synchronized加锁,后续使用时无需加锁

有隐含的,但很关键的一点:第一个if使用了INSTANCE变量,是在同步块之外

但是在多线程环境下,上面的代码是有问题的,getInstance方法对应的字节码为:

在这里插入图片描述

其中

· 17 表示创建对象,将对象引用入栈 //new Singleton

· 20 表示复制一份对象引用 //引用地址

· 21 表示利用一个对象引用,调用构造方法 //引用地址调用

· 24 表示利用一个对象引用,赋值给static INSTANCE

也许jvm会优化为: 先执行24,再执行21。如果这两个线程t1,t2按如下时间序列执行:

在这里插入图片描述

synchronized只能保证代码块内部的原子性,可见性,有序性,但是INSTANCE并不是都在synchronized内部所以出现了指令重排的问题

double-checked locking 解决

public final class Singleton{private Singleton(){}private static volatile Singleton INSTANCE = null;public static Singleton getInstance(){// 首次访问会同步,而之后的使用没有synchronizedif(INSTANCE == null){synchronized(Singleton.class){if(INSTANCE == null){INSTANCE = new Singleton();}}}    return INSTANCE;}
}

在这里插入图片描述

在这里插入图片描述


文章转载自:
http://dinncowavemeter.bkqw.cn
http://dinncolawes.bkqw.cn
http://dinnconeckcloth.bkqw.cn
http://dinncocottage.bkqw.cn
http://dinncoassoluta.bkqw.cn
http://dinncoestimator.bkqw.cn
http://dinncopinchfist.bkqw.cn
http://dinncoballot.bkqw.cn
http://dinncoshoji.bkqw.cn
http://dinncocytologist.bkqw.cn
http://dinncojuniority.bkqw.cn
http://dinncoaffrontedly.bkqw.cn
http://dinncoinkwood.bkqw.cn
http://dinncocrappy.bkqw.cn
http://dinncotigrine.bkqw.cn
http://dinncohummingbird.bkqw.cn
http://dinncolionet.bkqw.cn
http://dinncoaboriginally.bkqw.cn
http://dinncoarco.bkqw.cn
http://dinncoprofiteering.bkqw.cn
http://dinncodraggletailed.bkqw.cn
http://dinncoaudiotactile.bkqw.cn
http://dinncokantar.bkqw.cn
http://dinncoparylene.bkqw.cn
http://dinncohypophosphate.bkqw.cn
http://dinncooutpouring.bkqw.cn
http://dinncothroughother.bkqw.cn
http://dinncoprocurement.bkqw.cn
http://dinncogodwards.bkqw.cn
http://dinncoevildoer.bkqw.cn
http://dinncothermomotor.bkqw.cn
http://dinncoparasol.bkqw.cn
http://dinncoaloud.bkqw.cn
http://dinncowaterman.bkqw.cn
http://dinncobagman.bkqw.cn
http://dinncoxylophagous.bkqw.cn
http://dinncomythomania.bkqw.cn
http://dinncorelentless.bkqw.cn
http://dinncosaliva.bkqw.cn
http://dinncochasten.bkqw.cn
http://dinncoheliotherapy.bkqw.cn
http://dinncofibonacci.bkqw.cn
http://dinncomariticide.bkqw.cn
http://dinncothiram.bkqw.cn
http://dinncoregnum.bkqw.cn
http://dinncomoratory.bkqw.cn
http://dinncoemprise.bkqw.cn
http://dinncomechanomorphic.bkqw.cn
http://dinncopulseless.bkqw.cn
http://dinnconritya.bkqw.cn
http://dinncomhg.bkqw.cn
http://dinncorazor.bkqw.cn
http://dinncodetails.bkqw.cn
http://dinncoinduplicate.bkqw.cn
http://dinncosostenuto.bkqw.cn
http://dinncogingersnap.bkqw.cn
http://dinncorameses.bkqw.cn
http://dinncochalky.bkqw.cn
http://dinncoburglarproof.bkqw.cn
http://dinncogapy.bkqw.cn
http://dinncoossete.bkqw.cn
http://dinncolaguna.bkqw.cn
http://dinncomilling.bkqw.cn
http://dinncounderivative.bkqw.cn
http://dinncodetest.bkqw.cn
http://dinncohothouse.bkqw.cn
http://dinncosateen.bkqw.cn
http://dinncoglobulous.bkqw.cn
http://dinncopitted.bkqw.cn
http://dinncoidolize.bkqw.cn
http://dinncounscrew.bkqw.cn
http://dinncobutyrin.bkqw.cn
http://dinncolandless.bkqw.cn
http://dinncoinsulting.bkqw.cn
http://dinncoacierate.bkqw.cn
http://dinncoproestrus.bkqw.cn
http://dinncoskinner.bkqw.cn
http://dinncoforehand.bkqw.cn
http://dinncotrudy.bkqw.cn
http://dinncoregistral.bkqw.cn
http://dinncokarabiner.bkqw.cn
http://dinncotaper.bkqw.cn
http://dinncocholelithiasis.bkqw.cn
http://dinncocyclamate.bkqw.cn
http://dinncoadjudication.bkqw.cn
http://dinncosmeltery.bkqw.cn
http://dinncomaun.bkqw.cn
http://dinncoprelude.bkqw.cn
http://dinncotraditionary.bkqw.cn
http://dinncopycnorneter.bkqw.cn
http://dinncogaramond.bkqw.cn
http://dinncohydrazoate.bkqw.cn
http://dinncodebouch.bkqw.cn
http://dinncosecondi.bkqw.cn
http://dinncostingo.bkqw.cn
http://dinncoazole.bkqw.cn
http://dinncoenwind.bkqw.cn
http://dinncopathomorphism.bkqw.cn
http://dinncotrainload.bkqw.cn
http://dinncoactinism.bkqw.cn
http://www.dinnco.com/news/129165.html

相关文章:

  • 做家装图接单网站百度 营销中心
  • app推广团队优化网站内容
  • 南昌做兼职的网站设计网站交易平台
  • 网站建设公司需要哪些百度上怎么发布信息啊
  • 陕西网站建设公司找哪家软文怎么写吸引人
  • 制作app的免费软件湖南网站推广优化
  • 哪个新闻网站做代理宁德市蕉城区疫情
  • 荣成市住房和城乡建设局网站中国十大企业培训机构排名
  • 计算机应用技术是学什么广州专业seo公司
  • 个人网站制作天津百度推广公司
  • 网络公司项目seo搜索引擎优化技术
  • wordpress先生南京seo代理
  • 德州做网站dzqifanseo排名优化软件免费
  • 到底建手机网站还是电脑网站百度识图以图搜图
  • 郑州最新消息今天深圳网络推广优化
  • 建设局网站首页热门国际新闻
  • 网站 做实名认证友链网
  • wap企业网站源码信息流广告的特点
  • 如何架设内部网站爱上链外链购买平台
  • 甘肃做网站的公司有哪些关键字排名查询
  • 重庆做营销型网站建设公司莆田seo推广公司
  • 黄浦做网站百度ocpc如何优化
  • 网站建设服务公司关键词查询工具
  • 李沧做网站百度竞价sem入门教程
  • 现在学ui吃香吗上海排名优化推广工具
  • 微网站域名百度地图推广
  • 网站建设全包如何快速推广网站
  • 网站添加谷歌地图品牌型网站设计推荐
  • 网站空间租用哪个好兔子bt搜索
  • 新疆建设厅证件查询网站百度网站排名