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

真实字节二面什么是伪共享?

  这个问题来自最近一个朋友字节面试碰到的,最后他也成功拿到了字节offer,这个问题我想可能挺多人不太清楚,所以想拿出来单独说一说。
  好了,让我们进入正题。 什么是伪共享
  首先大家都知道,随着CPU和内存的发展速度差异的问题,导致CPU的速度远远快于内存,所以一般现在的CPU都加入了高速缓存,就是常说的解决不同硬件之间的性能差异问题。
  这样的话,很简单的道理,加入了缓存,就必然会导致缓存一致性的问题,由此,又引入了缓存一致性协议。(如果你不知道,建议去百度一下,这里不做展开)
  CPU缓存,顾名思义,越贴近CPU的缓存速度越快,容量越小,造价成本也越高,而高速缓存一般可以分为L1、L2、L3三级缓存,按照性能的划分:L1>L2>L3。
  而事实上,数据在缓存内部都是按照行来存储的,这就叫做缓存行。缓存行一般都是2的整数幂个字节,一般来说范围在32-256个字节之间,现在最为常见的缓存行的大小在64个字节。
  所以,按照这个存储方式,缓存中的数据并不是一个个单独的变量的存储方式,而是多个变量会放到一行中。
  我们常说的一个例子就是数组和链表,数组的内存地址是连续的,当我们去读取数组中的元素时,CPU会把数组中后续的若干个元素也加载到缓存中,以此提高效率,但是链表则不会,也就是说,内存地址连续的变量才有可能被放到一个缓存行中 。
  在多个线程并发修改一个缓存行中的多个变量时,由于只能同时有一个线程去操作缓存行,将会导致性能的下降,这个问题就称之为伪共享。
  为什么只有一个线程能去操作?我们举个实际的栗子来说明这种情况:
  假设缓存中有x,y 两个变量,他们同时已经在不同的三级缓存之中。
  这时有两个线程A和B同时去修改位于Core1和Core2的变量x 和y 。
  如果线程A去修改Core1的缓存中的x 变量,由于缓存一致性协议,Core2中对应的缓存了x 变量的缓存行将会失效,他会被强制从主内存中重新去加载变量。
  这样的话,频繁的访问主内存,缓存基本都失效了,将会导致性能的下降,这就是伪共享的问题。
  如何避免?
  既然已经知道了什么是伪共享,那么怎么避免这种情况的发生?
  改变行存储的方式?想都别想了。
  剩下可行的方法就是填充,如果这一行只有我这一个数据那不就好了吗?
  确实就是这样,解决方式通常有以下两种。
  字节填充
  在JDK8之前,可以通过填充字节的方式来避免伪共享的问题,如下代码所示:
  自定义填充
  一般而言,缓存行有64字节,我们知道一个long是8个字节,填充5个long之后,一共就是48个字节。
  而 Java 中对象头在32位系统下占用8个字节,64位系统下占用16个字节,这样填充5个long型即可填满64字节,也就是一个缓存行。
  @Contented注解
  JDK8以及之后的版本 Java 提供了sun.misc.Contended  注解,通过@Contented注解就可以解决伪共享的问题。
  注解方式
  使用@Contented注解后会增加128字节的padding,并且需要开启-XX:-RestrictContended 选项后才能生效。
  所以,通过以上两种方式你会发现,对象头大小和缓存行的大小都和操作系统位数有关,JDK的注解帮你解决了这个问题,所以推荐尽量使用注解的方式来实现。
  虽然解决了伪共享问题,但是这种填充的方式也浪费了缓存资源,明明只有8B的大小,硬是使用了64B缓存空间,造成了缓存资源的浪费。
  而且我们知道,缓存又小又贵,时间和空间的取舍要自己酌情考虑。 实际应用
  在Java中提供了多个原子变量的操作类,就是比如AtomicLong 、AtomicInteger 这些,通过CAS的方式去更新变量,但是失败会无限自旋尝试,导致CPU资源的浪费。
  为了解决高并发下的这个缺点,JDK8中新增了LongAdder 类,他的使用就是对解决伪共享的实际应用。
  LongAdder 继承自Striped64 ,内部维护了一个Cell 数组,核心思想就是把单个变量的竞争拆分,多线程下如果一个Cell 竞争失败,转而去其他Cell 再次CAS重试。
  Striped64成员变量
  解决伪共享的真正的核心就在Cell 数组,可以看到,Cell 数组使用了Contented 注解。
  在上面我们提到数组的内存地址都是连续的,所以数组内的元素经常会被放入一个缓存行,这样的话就会带来伪共享的问题,影响性能。
  这里使用Contented 进行填充,就避免了伪共享的问题,使得数组中的元素不再共享一个缓存行。
  好了,今天的内容就到这里,我是艾小仙,我的slogan还没想好,但是我们下次见。
  后台回复【pdf】获取百本计算机电子书和大厂面试精华,文章每周持续更新。我是艾小仙,阿里巴巴技术专家,我们下期见!
  面经PDF整理

杨颖新戏开播,角色出场三分钟就下线,之后只能活在回忆中文洛小阳一部都市情感悬疑类的网剧摩天大楼,于8月19日在视频网站开播。这部剧同样也是改编自网络小说,主要讲述的是郭涛和杨子姗饰演的两位警察,在追查一幢摩天大楼发生的命案过程。这部电杨颖罕见穿拖鞋走机场,腿长却丝毫不逊色于超模!导语杨颖罕见穿拖鞋走机场,腿长却丝毫不逊色于超模!杨颖元旦过后首次现身机场,一身黑色系的她,看起来又酷又帅。不过,让人意外的是,她脚上却穿了一双拖鞋。这在寒冷的冬季,真是让人看不懂高娓娓川普又摊上事了!性丑闻发酵,女方爆料床上功夫一般川普最近可说是焦头烂额,这边厢被指责用粪坑国形容非洲国家涉嫌种族歧视,那边厢又被曝出其私人律师曾在大选前向成人片女星克里福德(StephanieClifford)支付了13万美元封高娓娓美国酒店华裔协会11周年庆典在纽约举行纽约当地时间2月2日,美国酒店华裔协会11周年庆暨2017年度表彰先进典礼在纽约举行。美国酒店华裔协会成立至今已11年,从最初400多位会员,发展到现在的1000多名会员,充分见证高娓娓周大福凭什么红遍中华很多年前,我阔别祖国十多年后回来,有点不习惯中美两国的一些差异,在国内机场转机回重庆,在机场因为行李问题,得到一群周大福姑娘的帮助,详细请看以前的博文高娓娓博客信任危机,你敢把行李高娓娓在美国,哪国人的英语口音最让人费解?不是中国怎样让自己的英语口音更纯正是大部分留学生宝宝都十分苦恼的问题。有时候口音作为一个人家乡的烙印在生活中听起来是很亲切舒服的,但是在某些特殊场合,我们的口音真的很耽误四儿有没有!澳州人高娓娓CCTV中央电视台超强宝贝美国赛区海选实况这两天,娓娓有幸受邀担任2018年CCTV超强宝贝少儿春晚美国赛区海选的评委。特别要介绍的,有一个高娓娓熟悉的小姑娘,是我的好朋友曾莉女士的孩子,我们美高美投资移民团队是看着她如何高娓娓留学必读不负少年强王丰源新书美国首发2017年12月20日下午,一本在国内畅销的留学必读书籍不负少年强(英文名TheZealinYouth)在纽约哈佛俱乐部举行美国首发式,这是一本由中国13岁少年作者王丰源根据自身经高娓娓加州山火猛特朗普宣布进入紧急状态来源侨报作者高睿聂达翁羽编辑孟音延烧多日的南加州山火在星期五继续蔓延,6场山火的过火总面积已经达到14万1000千英亩,23万民众紧急撤离,目前已有一人被证实在此次山火中遇难。在加高娓娓专访澳海岸国际控股集团总裁刘启升积极投入家乡建设2018年1月21日27日,高娓娓应安徽侨联的邀请,作为海外列席代表,到安徽参会,见证了祖国开放透明的民主进程,心情很激动,也有缘结识了很多来自世界各地的同胞,有感于他们心系祖国,高娓娓纽约的第一场雪有多美美东周六迎来了今年的第一场雪。纽约波士顿费城华盛顿特区多地银装素裹。美国国家气象局表示,华盛顿特区周六的积雪有3英寸厚。纽约和波士顿地区周六积雪在3到6英寸之间。第一夫人梅拉尼娅也
十大巅峰武侠电影承载激荡人心的年代小时候你最喜欢看什么电影?也许,武侠电影是你的最爱之一,也是我最喜欢的电影,直到现在也历历在目深刻心灵,甚至已经烙印上我的基因。那个时代的武侠电影是那么好看,画面飞沙走石,人物飞天你们就那么厌恶秦淮茹吗?聊聊情满四合院的秦淮茹很多人喜欢看情满四合院,也热议了很久,一直想写点什么,可是我一直在思考秦淮茹到底是个什么样的人,就迟迟没有下笔,今天终于提起勇气,我打算从这个角度来写如果你是秦淮茹,你会怎么做?这你到底想要什么样的艳遇?电影爱情呼叫转移讲透了爱情电影爱情呼叫转移上映于2007年2月8日,距我写出这篇影评已经过去14年3个月4天。我也已经从26岁的有志花样青年走到了现在的黄花大叔。当时我看这部电影的想法很简单,哇,都是美女,你看懂了傻柱的傻吗?聊聊情满四合院里的何雨柱情满四合院这部电视剧通过演绎老北京一个大杂院三十多年的历程,以小社会反映大时代的历史变迁,博得了广大观众的喜爱。特别是绰号傻柱的主人公何雨柱,更是让很多人通过看到他的傻,感受到人间真西游伏魔之天蓬元帅(四)精元方舟载着众人在洪荒宇宙中穿行。苏华晨和赵奋说着天庭的各种轶事,不一会就来到一处光华神奇之处。巨大无朋的万丈高山,五色仙气缭绕。仙风徐徐,赵奋能够感受到仙风中淡淡的香气。仙山中有迷人的西西里美丽传说莫妮卡贝鲁奇您看过一部以一个女人的绝世美貌为主要内容的电影吗?这完全就是一部颂扬莫妮卡贝鲁奇那西西里特有性感迷人的电影,如果你是男性,你一定会为莫妮卡贝鲁奇的美貌所倾倒,如果你是女性,你一定会地球球花系列1落入凡间的天使奥黛丽赫本第一次在电视荧幕上见到这个演员大概是在90年代,充满年代感的黑白电影,清脆的对白,当然是国语对白。立时就被精致面孔的女演员吸引了,在如此污浊的世间怎么还会有如此超凡如此优雅如此美貌武侠电影的没落,只因这十部神级武侠电影树立了巅峰现在的武侠电影没落了,近几年比较不错的也就只有绣春刀系列了,还有吗?也许是观众的口味变了,可怪也只能怪那个时代的香港武侠电影是那么好看,画面飞沙走石,人物飞天遁地,感觉是那么真实那49岁黄磊一句话惹争议,被骂上热搜这次,我真的心疼继孙莉上热搜被吐槽身材不行,抛头露面不守妇道之后。丈夫黄磊,也被怼上热搜了。这两口子安安静静自己美好,却可能是流年不利命犯小人,一个接一个的接连被狙。而这次黄磊被怼的原因不仅莫名其西安母女被困电梯,4天3夜喝尿求生,背后真相值得所有人警醒1hr上午,看到一条新闻,很是唏嘘。陕西西安,一对82岁和64岁的母女,被困家中电梯4天3夜,互喝对方的尿液,最终获救。(来源微博陕西电视台都市快报栏目)两位老人独居在一栋四层别墅心理研究所第一课男人为什么会好色近段时间,老牛看了很多书,都是那种以上帝视角看地球,看地球生命,看人类群体的那种书。突然,老牛突然想到了一个很深刻的问题,男人为什么会好色,然后去立刻查了很多资料,特此拿出来和大家