CPU 伪共享是如何发生的?又该如何可能会?
2024-01-22 12:18:48
所以,可以找到如果 1 号和 2 号 CPU 当前这样不间断更替的分别修订函数 A 和 B,就不会减法 ④ 和 ⑤ 这两个步骤,Cache 并没有人不可忽视多多线程的效果,虽然函数 A 和 B 两者之间其实并没有人任何的的关系,但是因为同时归属于一个 Cache Line ,这个 Cache Line 当中的任意信息被修订后,都不会相互影响,从而出现 ④ 和 ⑤ 这两个步骤。
因此,当多多线程修订互相独立的函数时,如果这些函数对等同一个多多线程行,就不会无意当中影响彼此的持续性能,这就是实为对等。
如何尽量避免举个栗子public class FalseSharingTest { public static void main(String[] args) throws InterruptedException { testPointer(new Pointer()); } private static void testPointer(Pointer pointer) throws InterruptedException { long start = System.currentTimeMillis(); Thread t1 = new Thread(() -> { for (int i = 0; i < 100000000; i++) { pointer.x++; } }); Thread t2 = new Thread(() -> { for (int i = 0; i < 100000000; i++) { pointer.y++; } }); t1.start(); t2.start(); t1.join(); t2.join(); System.out.println(System.currentTimeMillis() - start); System.out.println(pointer); }} class Pointer { volatile long x; volatile long y;}后面这个例子,我们声明了一个Pointer的类,它还包括了x和y两个函数(需声明为volatile,保证可见持续性),一个多线程对x进行时自增1亿次,一个多线程对y进行时自增1亿次。
可以看到,x和y显然没有人任何的关系,但是更新x的时候不会把其它还包括x的多多线程行过载,同时y也就过载了,调试这段计算机系统驱动的间隔时间为3890ms。
实为对等的原理我们知道了,一个多多线程行是64二进制,一个long特性是8个二进制,所以尽量避免实为对等也很简单,大约有以下三种模式:
(1)在两个Long特性的函数两者之间即使如此7个long特性
我们把后面的pointer去掉上头这个结构
class Pointer { volatile long x; long p1, p2, p3, p4, p5, p6, p7; volatile long y;}再次调试计算机系统,不会找到驱动间隔时间神奇的缩短为695ms
(2)新的创建自己的long特性,而不是Ja自带的long修订Pointer如下
class Pointer { MyLong x = new MyLong(); MyLong y = new MyLong();} class MyLong { volatile long value; long p1, p2, p3, p4, p5, p6, p7;}同时把pointer.x++改为pointer.x.value++;等,再次调试计算机系统找到间隔时间是724ms,这样本质上还是缓冲。所以,尽量避免 Cache 实为对等实际上是用空间换间隔时间的哲学思想,浪费一部分 Cache 空间,从而换来持续性能的提升。
(3)运用于@sun.misc.Contended梗概(ja8)
修订MyLong如下:
@sun.misc.Contendedclass MyLong { volatile long value;}匹配运用于这个梗概是无效的,必须在JVM启动变量加上-XX:-RestrictContended才不会生效,再次调试计算机系统找到间隔时间是718ms。注意,以上三种模式当中的前两种是通过加字段的形式实现的,加的字段又没有人地方运用于,可能不会被jvm冗余掉,所以劝告运用于第三种模式。 Ja 并发前提 Disruptor 运用于「二进制缓冲 + 继承」的模式,来尽量避免实为对等的难题。感兴趣的同学可以自己去修习了解一下。
。新必奇蒙脱石散和妈咪爱的作用一样吗空调病吃什么药?
新冠嗓子疼多久消失
治疗新冠的药有哪几种药
闹肚子吃肠炎宁行吗
- 青你2姐妹再相聚 刘雨昕包场劝勾雪莹看电影
- 太难了,老公心态崩了,降价卖房,但买房人变聪明了,不肯接盘!
- 投资者提问:一、定增计划中的募资为什么要在指定的35家机构募资,而不在二级...
- 井柏然晒秋天第一件西装 网友发现竟是刘雯联名款
- 租房攻略:10年中介老公教你如何避免吃亏
- 投资者反问:公司现在仍然没有解决B股问题的方案公布,请问公司解决B股问题的...
- 赵本山女儿球球拍据悉即将结婚,和男友小陈获赞超有夫妻相
- 碧桂园突发公告,不能偿还所有外债,杨惠妍与许家印的区别是什么
- 对冲提问:上市公司直接持股云谷(固安)53.73%,间接持股持股22.1...
- 宋喆将要出狱,回看马蓉和王宝强的现状,没有一个是赢家!
- 投资者提问:请问董秘目前启用和在建的太阳能电池生产线都分别是什么工艺的?以后是否...
- 买房用等额额度还是等额本息划算吗
- 21岁新人忘圈内:女演员被邀请到酒店试戏,男艺人也不安全?
- 投资者提问:近日,第四届“深圳质量百强企业”评选结果出炉,科安达凭借在土星...
- 有公积金为什么银行不给贷?公积金贷款被不愿的原因
- 【文娱热点】、成毅《底线》今晚季于;《我们的歌》第四季定档9.25
- 投资者提问:昨天董秘,2023年-季度有哪些生产线点火投产,包括但不限于光...
- 楼层不管多少层,建筑学家:有3类楼层属于“黄金楼层”,需了解到
- 杨超越退网?胡一天剧中被抢?林心如被敲诈?男明星艳压?
- 投资者提问:请问公司与联通农业银行合作发售数字货币sim卡,有用到公司Rc...