高并发底层原理
文章平均质量分 97
MrYuShiwen
能够成就别人的人才能称得上是真英雄,愿我们彼此相互成就,成为那个真英雄!
Java开发工程师,后端工程师,努力想成为架构师的小萌新;
写代码和学习新知识是一件非常有趣的事情,它即是个人爱好也是个人职业;
愿我的文章对读者有用,欢迎评论,一起进步!
如果期待更多我的知识分享,请关注我,一起成为那个了不起的人吧!
展开
-
高并发之volatile、synchronized关键和内存屏障(Memory Barrier)
我们都知道在Java中,如果不使用volatile和synchronized指令可能会发生重排,指令重排分为编译器指令重排和CPU指令重排。- Java多线程程序通常使用高层程序设计语言中的同步原语,比如volatile和synchronized,因此一般不需要明确使用内存屏障。- 也就是说在Java中我们使用的是volatile和synchronized关键字,javac编译转化成字节码的时候,还是用到了内存屏障。原创 2022-03-04 08:44:13 · 2423 阅读 · 48 评论 -
高并发之伪共享和缓存行填充(缓存行对齐)(@Contended)
1.在类中定义看似无用的属性,速度有质的提升伪共享和缓存行填充,我们先看一个例子,让大家感受一下了解底层知识后,你的代码可以快到起飞的感jio:如下是未使用缓存行(Cache Line)填充方法运行的结果,可以看到耗时是329为什么会这么神奇,这里为先提前说下结论,具体的大家可以往后看。缓存一致性是根据缓存行(Cache line)为单元来进行同步的,即缓存中的传输单元为缓存行,一个缓存行大小通常为64Byte;缓存行的内容一发生变化,就需要进行缓存同步;所以虽然用到的不是同一个数据,但是他原创 2022-03-01 08:53:15 · 3199 阅读 · 42 评论 -
“了解高并发底层原理”,面试官:讲一下MESI(缓存一致性协议)吧
本期围绕着,什么是(Who),为何来(How),是什么(What),这三点内容来进行讲解该协议。1.什么是(Who):MESI(Modified Exclusive Shared Or Invalid)协议是基于Invalidate的高速缓存一致性协议,并且是支持回写高速缓存的最常用协议之一。 它也被称为伊利诺伊州协议(由于其在伊利诺伊大学厄巴纳 - 香槟分校的发展)。用于解决缓存一致的问题。2.为何来(How):2.1缓存不一致带来的后果如上图,数据加载的流程如下:(从内存到寄存器)将原创 2022-02-22 09:10:21 · 2711 阅读 · 28 评论