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

深入理解Java内存模型(JMM)中的可见性

  可见性是指当一个线程修改了某个共享变量的值时,其他线程是否能够立即知道这个修改。显然,对于串行程序来说,可见性问题是不存在的。因为你在任何一个操作步骤中修改了某个变量的值,在后续的步骤中读取这个变量的值时,读取的一定是修改后的新值。
  但是这个问题存在于并行程序中。如果一个线程修改了某个全局变量的值,那么其他线程未必可以马上知道这个改动。图1.14展示了发生可见性问题的一种可能。如果在CPU1和CPU2上各运行了一个线程,它们共享变量t,由于编译器优化或者硬件优化的缘故,在CPU1上的线程将变量t进行了优化,然后将其缓存在cache中或者寄存器里。在这种情况下,如果在CPU2上的某个线程修改了变量t的实际值,那么CPU1上的线程可能无法知道这个改动,依然会读取cache中或者寄存器里的数据。因此,就产生了可见性问题。外在表现为:变量t的值被修改,但是CPU1上的线程依然会读到一个旧值。可见性问题也是并行程序开发中需要重点关注的问题之一。
  图1.14 发生可见性问题的一种可能
  可见性问题是一个综合性问题。除上面提到的缓存优化或者硬件优化(有些内存读写可能不会立即触发,而会先进入一个硬件队列等待)会导致可见性问题,指令重排(这个问题将在下一节中详细讨论)及编辑器的优化,也有可能导致一个线程的修改不会立即被其他线程察觉。
  下面来看一个简单的例子:Thread 1 Thread 2
  1: r2 = A; 3: r1 = B;
  2: B = 1; 4: A = 2;
  上述两个线程并行执行,分别有1、2、3、4四条指令。其中指令1、2属于线程1,而指令3、4属于线程2。
  从指令的执行顺序上看,r2==2并且r1==1似乎是不可能出现的。但实际上,我们并没有办法从理论上保证这种情况不出现。因为编译器可能将指令重排成:Thread 1 Thread 2
  B = 1; r1 = B;
  r2 = A; A = 2;
  在这种执行顺序中,就有可能出现刚才看似不可能出现的r2 == 2并且r1 == 1的情况。
  这个例子就说明,在一个线程中观察另外一个线程的变量,它们的值是否能观测到、何时能观测到是没有保证的。
  再来看一个稍微复杂一些的例子:Thread 1 Thread 2
  r1 = p; r6 = p;
  r2 = r1.x; r6.x = 3;
  r3 = q;
  r4 = r3.x;
  r5 = r1.x;
  这里假设在初始时,p == q 并且 p.x == 0。对于大部分编译器来说,可能会对线程1进行向前替换的优化,也就是r5 = r1.x这条指令会被直接替换成r5 = r2。由于它们都读取了r1.x,又发生在同一个线程中,因此,编译器很可能认为第2次读取是完全没有必要的。因此,上述指令可能会变成:Thread 1 Thread 2
  r1 = p; r6 = p;
  r2 = r1.x; r6.x = 3;
  r3 = q;
  r4 = r3.x;
  r5 = r2;
  现在思考这么一种场景。假设线程2中的r6.x = 3发生在r2 = r1.x和r4 = r3.x之间,而编译器又打算重用r2来表示r5,那么就有可能出现非常奇怪的现象。你看到的r2是0,r4是3,但是r5还是0。因此,如果从线程1来看就是:p.x的值从0变成了3(因为r4是3),接着又变成了0(这是不是算一个非常怪异的问题呢?)。
  内容摘自《实战Java高并发程序设计(第3版)》,本书适合:所有java从业人员,所有数据库工程师阅读。
  逻辑顺畅。全书脉络清晰,从Java高并发程序的设计基础开始由底层原理落实到具体案例,环环相扣,完整流畅。结构严谨。总体上循序渐进,逐步提升。每一章都各自有鲜明的侧重点,有利于读者快速抓住重点。
  实用性强。本书注重实战,采用了理论结合实践的编写方法,给重要的知识点都安排了代码实例,帮助读者在工作中实战应用。

4月份将至,告诉大家一个不好的消息,每个人都应提前做好准备!4月份将至,告诉大家一个不好的消息,每个人都应提前做好准备!大家好,我是傻姐美食,前一阵甲流闹得沸沸扬扬,周围的幼儿园中小学学校中都有不少感染的孩子,甚至有的更严重的学校做出了停课漂亮大妈相亲,主动牵大叔的手,想过好夫妻生活,大叔你别骗我你要身材有身材要颜值有颜值,咋还主动牵我手示好啊?该不会是演戏骗人的吧!宋叔看到大妈主动表白示好,而且还把手主动递了过来,当即一下子就心里发慌,毕竟做梦跳井还能醒,但要是这会被骗了着眼推广变专家田为农民田春分时节,农事正忙。各地农民正在抢抓农时,播种育苗,强化田间管理,为全年粮食丰收打好基础。在环境资源的硬约束下,各地继续把创建高产试验示范田作为促进粮食增产的重要举措。但是,如何把不到两年,第一次感受到买房人彻底慌了!1hr站在蜀西湖遥望直线距离8公里外的心湖,内心无比的感慨两年前需要全款抢房的这里,能够看得见的是树长高了,以及高高站岗的人!想必我一提蜀西湖很多人都知道是哪里了?对,说的就是合肥把网络流量转化为发展人气最近,四川河南广东等多地文旅局局长披挂上阵,走到镜头前,为家乡代言为旅游助力,一时间圈粉无数。对于文旅局局长们主动触网跨界代言,认为接地气有创意的声音有之质疑质量不高身份不妥的声音第六期光明之家中途失明生活重建训练营在京举办工人日报中工网记者杨兆敏2月18日至3月3日,为期14天的第六期光明之家中途失明生活重建训练营在北京举办,来自全国8个省市的14位中途失明者在培训中,学习技能接纳自我重建生活。闭营两会过后,三天打三虎,这些省部级高官再度落马!1重庆市人大常委会原副主任党组原副书记郑洪郑洪这是两会过后的首虎。他本在2018年就退休,经过党中央严密倒查,以零容忍态度打击腐政,时隔五年,郑洪终究落马。据悉,郑洪在九龙坡区任职中国969位企业家上榜胡润全球富豪榜居住在长沙的企业家占16席2023胡润全球富豪榜发布,中国969位企业家上榜领跑全球居住在长沙的企业家占16席制图王斌长沙晚报3月23日讯(全媒体记者舒元臻)23日,胡润研究院发布2023胡润全球富豪榜,这美国一头小牛逃离屠宰场在街上狂奔据英国镜报报道,周二下午,一头牛犊从屠宰场逃走,工作人员试图抓住它,但徒劳无功。现场的一段视频显示,惊慌失措的工作人员正追着小牛跑,试图套住它。据悉,这只小牛最后是在当地的东96街55岁英拉在印度旅游,穿纱丽真漂亮,一把抱住哥哥他信撒娇好娇俏2022年10月20日,泰国前总理英拉西那瓦参加自己20岁儿子苏帕塞克安莫查的颁奖典礼。在英拉发布的照片中,我们可以看到20岁上大二的苏帕塞克身高已经超过1。85米,比自己的母亲已科比在NBA生涯中最喜欢的教练是谁?科比布莱恩特是NBA历史上最伟大的球员之一,他的职业生涯中有许多杰出的教练,他和许多教练都有着深厚的关系和共同的经历,但有一个教练让科比特别感激和敬重,那就是禅师菲尔杰克逊。菲尔杰
中集把一家酒店打包运到美国,将在Facebook园区建地标酒店当地时间11月15日上午,一艘满载建筑模块的货船到达美国旧金山,其搭载的161间建筑模块将通过堆叠,快速建成一座5层楼高的硅谷地标性酒店。该项目所有建筑模块由中集集团旗下中集建科的成渝之星遂宁打造一座独特的养心文旅名城封面新闻记者刘虎刘彦君积淀逾千年,钟灵毓秀。当厚重的人文底蕴映射在变化的城市风貌上,铺就出一条专属遂宁独特的养心文旅之路。自开启养心文旅名城建设以来,遂宁市以养心文化为核心创意旅游东山岛在台风雨来临前夜,我来到了海港小镇夏天过去了一个世纪,秋风还是燥热,海风吹到东纵路上,空气中都是鱼腥的味道,木棉落了一地。东莞这座城总是给人错觉,让人难辨季节的交替,也好,满大街的紫荆,操蛋的中年,你能说不是风景么旅游小镇教堂尖塔摇摇欲坠,随时可能倒塌巴黎11月17日(王琴明)邦塞库尔圣母院教堂(lgliseNotreDamedeBonsecours)是法国滨海城市特鲁维尔的标志性建筑之一,然而教堂高耸的钟楼已经摇摇欲坠,有随时东风小康造了一款6米长纯电MPV造型独特像上世纪产物这年头,车企造新车,讲究复古范儿,尤其是在电动车方面。近日,东风小康推出一款全新的纯电MPV,一瞬间恍惚将人带到了上个世纪末。这款纯电MPV名为德先T8,定位为纯电动运动型乘用车,推迟了四次才发射成功的美国登月火箭,挽回不了美国曾经的荣耀2022年11月16日,美国阿耳忒弥斯1号登月火箭在肯尼迪航天中心发射升空,这标志着美国自1972年最后一次登月以来,时隔50年再次展开对月球的探索。美国火箭发射战场虽然阿耳忒弥斯不到一年超10万人被裁!美国硅谷裁员潮持续蔓延近期硅谷的裁员潮在继续蔓延,并且裁员正在从科技行业逐渐扩大到金融媒体娱乐等其他领域。在Meta公司不久之前的上万人大裁员之后,硅谷的裁员潮似乎没有停止。华尔街日报等媒体爆料说,亚马终于!美国重返月球第一步,阿尔忒弥斯1号成功升空导读此次任务重在收集测试数据美国重返月球第一步终于落下。当地时间11月16日,被美国航空航天局(NASA)称为有史以来最强大的火箭之一的美国太空发射系统(SLS)重型火箭,在多次推西班牙建筑大师设计一把透明椅,独特蝴蝶背,一体成型Prada2019春夏时装秀场上,一排排透明充气座椅占据着嘉宾席位。这是由Verpan为Prada大秀专门定制,复刻设计师VernerPanton在1960年代推出的设计。Verp西方国家的不要脸行为,有多么可恶(系列一)大家都知道,西方国家之所以能在全球率先进入发达社会的行列,都是靠着不要脸的行为获得的。18世纪70年代,蒸汽机的出现,西方人开始了第一次工业革命,但是你们知道他们的工业革命的资本是古代的八府巡按和巡抚,哪个官职更高,权力更大?说到八府巡按,我们第一时间会想到周星驰电影九品芝麻官中,包龙星被皇帝御赐为八府巡按,奉旨回乡重审戚家灭门惨案,一时风光无两,连封疆大吏水师提督和朝廷要员刑部尚书都只能避其锋芒。其实