范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

并发编程的可见性问题

  在多CPU的系统中,由于每个CPU都有缓存,那么在多线程并发执行时,一个线程修改了变量如果只保存在自己的缓存中,那么另一个CPU就无法读取到最新的值,我们称为是可见性问题。
  通常可以将变量声明为volatile,就是告诉系统必须从系统的内存中读写变量(而不是CPU缓存),这样就能解决可见性问题;
  JAVA中如果变量在两个线程中位于同一个Synchronized段,那么就能保证可见性。
  其实CPU的缓存机制以及系统层面也有缓存一致性机制,但是不能完全解决可见性和指令重排问题:
  CPU分为三级缓存: 每个CPU都有L1,L2缓存,但是L3缓存是多核公用的。
  L1 Cache (一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。它是封装在CPU芯片内部的高速缓存,用于暂时存储CPU运算时的部分指令和数据,存取速度与CPU主频相近。内置的L1高速缓存的容量和结构对CPU的性能影响较大,一级缓存容量越大,则CPU处理速度就会越快,对应的CPU价格也就越高。一般服务器的CPU的L1缓存的容量通常在32-4096K
  L2 Cache (二级缓存)是CPU外部的高速缓存,由于L1高速缓存的容量限制,为了再次提高CPU的运算速度,在CPU外部放置一高速存储器,即二级缓存。像一级缓存一样,二级缓存越大,则CPU处理速度就越快,整台计算机性能也就越好。一级缓存和二级缓存都位于CPU和内存之间,用于缓解高速CPU与慢速内存速度匹配问题。
  L3 Cache (三级缓存) 都是内置的,它的作用是进一步降低内存延迟,同时提升大数据量计算时处理器的性能。具有较大L3缓存的处理器,能提供更有效的文件系统缓存行为及较短的消息和队列长度。一般多核共享一个L3缓存。
  缓存考虑数据的时间局部性和空间局部性,通常Cache Line可以简单的理解为CPU Cache中的最小缓存单位。目前主流的CPU Cache 的 Cache Line 大小都是64Bytes。 缓存一致性协议MESI用于解决,MESI 是指4个状态的首字母。而且指的是CacheLine的4个状态。
  关于MESI的原理,请参考:https://blog.csdn.net/org_hjh/article/details/109626607
  缓存行伪共享。在多线程情况下,如果需要修改"共享同一个缓存行的变量",就会无意中影响彼此的性能,这就是伪共享(False Sharing)。
  比如: 有2个long 型变量 a 、b,如果有t1在访问a,t2在访问b,而a与b刚好在同一个cache line中,此时t1先修改a,将导致b被刷新! 因此对于可能会被多线程访问的多个无关变量,可以将关键变量前后都加64Bytes,这样保证他不会与其他变量在一个cache line中。 【Java8中新增了一个注解:  @sun.misc.Contended   。加上这个注解的类会自动补齐缓存行,需要注意的是此注解默认是无效的,需要在jvm启动时设置  -XX:-RestrictContended   才会生效。】
  处理器在读写缓存时如果因为锁不能执行,为提高运算速度可能会执行后面的指令,从而导致指令执行不是完全按照顺序执行(CPU会评估后面执行的指令和阻塞的指令没有依赖才行),因而带来了执行的顺序性问题。
  既然CPU有缓存一致性协议(MESI),为什么还需要volatile关键字?
  因为 MESI只是保证了多核cpu的独占cache之间的一致性,但是cpu的并不是直接把数据写入L1 cache的,中间还可能有store buffer。有些arm和power架构的cpu还可能有load buffer或者invalid queue等等。因此,有MESI协议远远不够。
  而且在这个"一致性"上。consistency和coherence都可以被翻译为一致性,但是MSEI协议这里保证的仅仅coherence而不是consistency。那consistency和cohence有什么区别呢?
  下面取自wiki的一段话:
  Coherence deals with maintaining a global order in which writes to a single location or single variable are seen by all processors. Consistency deals with the ordering of operations to multiple locations with respect to all processors.
  因此,MESI协议最多只是保证了对于一个变量,在多个核上的读写顺序,对于多个变量而言是没有任何保证的。假设cpu写cache都是按照指令顺序fifo写的,那现在可以抛弃volatile了吧?因为对于arm和power这个weak consistency的架构的cpu来说,它们只会保证指令之间有比如控制依赖,数据依赖,地址依赖等等依赖关系的指令间提交的先后顺序,而对于完全没有依赖关系的指令,比如x=1;y=2,它们是不会保证执行提交的顺序的,除非你使用了volatile,java把volatile编译成arm和power能够识别的barrier指令,这个时候才是按顺序的。

天价蜂糖李40元一斤,种植后才发现不挂果,坑了多少农民说起蜂糖李,很多朋友都还很陌生,甚至有的朋友不敢相信竟然有李子能卖到40元一斤,但蜂糖李他就真有这个本事,原因还得从产量和口感说起。蜂糖李发源地弄袍村蜂糖李源于贵州六马镇弄袍村,早开箱评测OmthingAirFreePlus逆风通话也清晰开箱评测OmthingAirFreePlus逆风通话也清晰本产品由中关村在线和omthing品牌送测,感谢大力支持!大家平常有没有遇到过这样的一个问题,就是在大街上带着耳机时候遇到使用超声波洗碗机应注意的细节超声波洗碗机利用水分子的高频振动来清洁餐具,因此具有高度的清洁度,并且没有无法清洁的死角问题,特别适用于中式餐具的清洗。使用超声波洗碗机的五大禁忌1。清洗餐具时,注意餐具内无杂物,官微名片怎么深入触达客户?生意就藏在这些细节里自古以来,商业上的竞争都离不开信息层面的竞争,往往谁能够取得信息收集和传递上的优势,谁就能领先他人,而这一情况在数字化营销时代则更加明显。伴随着数字化营销潮起,企业想要在同行中脱颖细节爆表还暗藏彩蛋?绿厂自制英雄联盟MV秀操作,定制机稳了对于不少PC端的玩家来说,每一年的英雄联盟全球总决赛可以说是游戏界的春晚,每当战况越演愈烈,关注度也随之攀升,不少人都将目光放在了这一赛事上。而除了最终捧杯的队伍,每年总决赛的MVB端采购商都说好的外贸营销型网站,这些细节不可忽视B端采购商对全球搜客户网站给予高度评价既然采购商都这么夸了,我也实在不好意思再有所隐瞒,今天就来看看,那些拍案叫绝的外贸营销性网站,具体都是如何斩获采购商芳心的始于网站,陷于产品,想单手操作更畅爽?除了机身设计,Reno5还有这些妙招前一段时间,OPPO发布了OPPOReno5系列手机,该系列手机十分轻薄,拿OPPOReno5Pro来说,这款手机的重量只有173g,厚度也不过才7。6mm,握持起来十分舒适,而且FindX3上手,为何说它不简单?体验后才发现这点太刺激了就在3月11日1930,OPPO正式发布了十年理想之作FindX3系列。作为新年首款旗舰,OPPOFindX3系列此次也诚意满满,堆料都非常硬核,不仅拥有创新性的外观设计,还拥有1人工洗碗和自动洗碗机的比较餐具管理通常是餐饮管理中的关键环节也是薄弱环节,许多餐馆都为餐具清洗工作烦恼不已。餐具有破损,不仅降低菜品的质量,而且增加了餐具成本,而且没洗干净的餐具影响了公众形象和健康保障,而商用自动洗碗机的优点商用洗碗机已经应用于各行各业,也将成为一种趋势。餐饮店没有商用洗碗机,在超过10年后将难以运作。发达国家商用洗碗机的普及率高达90,在我国商用洗碗机还没外国普及的一半水平。为什么今使用洗碗机的原因是什么?与人工洗碗相比,大部分使用洗碗机都是餐饮和自助餐厅,可以说洗碗机清洗餐具的清洁度明显提高。但是使用大洗碗机的原因是什么?1。高温洗涤洗碗机的洗涤过程分为主洗涤和漂洗,洗碗机通过高温
3k价位段的不二之选!双芯旗舰vivoX80打造出色体验纵观目前的3k价位段手机市场,性能强的手机往往在影像设计等方面的表现不太行,影像强的手机往往在性能游戏等方面的表现不太行,各个方面都没有明显短板的全能机型真的非常少,但并不意味着没翻新手机大受消费者欢迎,2021年同比增长15随着全球智能手机市场逐渐趋于饱和,加上新冠疫情的起伏波动,导致经济不景气,更多的消费者选择减少更换手机的次数,意思是购买新手机的周期延长了。除此以外,一些性能和外观仍然保持良好水平小米11Ultra价格再创新低,256GB120倍变焦5000mAh,终于等到了最近两三年,为了实现较高的溢价,小米OPPOvivo荣耀等国产手机品牌,都推出了不少堆料十分凶猛的产品,由于这些手机的核心参数已经不输三星,某些方面还实现了超越,因此不少机型都被消飞利浦终于价格亲民!剃须刀降价5系同款科技,价格仅一半剃须刀这类产品不同价位预算有不同需求,200元以内预算可以以国产品牌为主,外观设计好看,性能也不错,各种功能也齐全,追求的就是简单实用性预算更高的,之前也为大家推荐过500元价位的iphone14将降低起售价,不同机型价格差距更大据可靠消息iPhone14系列将会降低200元的起售价,由去年的5999元变为5799元。并且取消了销量很低的iPhonemini系列,新增了max系列,所以此次iPhone14全vivo智能手表新专利落水可触发漂浮装置近日,维沃移动通信有限公司(vivo)申请的可穿戴设备专利公开含漂浮装置,落水可触发。专利摘要显示,本申请公开了一种可穿戴设备,该可穿戴设备包括穿戴组件设备主体,所述设备主体设置于华为再度招募天才少年,年薪最高200万科技龙头华为25日再度启动天才少年招募计划,根据公告,应聘者不限学历不限学校,正式入选后能享有5倍薪酬。虽然招聘计划内并没有详细说明5倍薪酬的确切数字,但根据华为先前公开的资料,入一季度国内手机市场成绩出炉,荣耀OPPOvivo小米你更看好谁?最近CINNOResearch发布今年1季度国内的手机市场情况,整体销量7439万部,较去年同期下滑了14。4,可见大环境不是很乐观,具体排名上面,OPPO销量排名第1,销量第2名如何在互联网获客有什么好的建议和方法吗?2020年的春节,所有人都过得战战兢兢,只要一关注新冠肺炎的新闻,瞬间就感觉自己立马中招了一样,整天提心吊胆。可是眼看着就是到了要外出上班的时间,可疫情当前,自然是保命要紧,谁还敢如何利用excel做可视化图表?这个说起来有点复杂。其实大家换个角度思考,我们的目的是做出好看的可视化图表,而图表不一定要用Excel来做,我们只需要Excel中的数据而已。市面上有很多的数据可视化工具,比Exc当你负债累累时,你们有没有想过放弃!又是什么支撑你走下去?放弃就不还债了?正常的借款,死都要还。这不是别人逼你,是诚信让你活下去还债。一二年,我给朋友担保一百多万,他跑了,我的工资是一千多,当时真的觉得没有希望了,是我老婆一直陪着我,让我