java并发编程
文章平均质量分 95
不秃头的小黄人
这个作者很懒,什么都没留下…
展开
-
从汇编看volatile与MESI的关系
JMM1.来谈谈JMM2.volatile和synchronized关键字2.1volatile是如何保证可见性的??2.2 volatile是如何保证有序性的呢??哪些情况不能重排序??三级目录1.来谈谈JMM我们都知道,为了提高CPU的运行效率,我们会在CPU和内存之间加入高速缓存来提高CPU的速度,由于当今CPU都是多核的,这会导致缓存一致性的问题,为了解决一致性的问题,需要处理器在访问缓存时都遵循一些协议,在读写数据时,要根据协议来操作,这类协议有MESI,MOSI,MSI等等…不了解MESI原创 2021-11-22 17:25:55 · 1163 阅读 · 0 评论 -
JUC基石 ---AQS
AQS1.什么是AQS??2.以ReentrantLock为例,理解AQS2.1首先来看公平与非公平是咋实现的??2.1.1 加锁2.1.1 解锁1.什么是AQS??AQS: 抽象的队列同步器:是JUC的基石,是构建锁(ReentrantLock和ReentrantReadWriteLock)和其他同步器组件(Semaphore,CountDownLatch,CyclicBarriar)的基础框架;抽象: 我们要使用AQS,需要继承AQS并重写诸如tryAcquiretryRelease原创 2021-11-14 21:30:04 · 688 阅读 · 0 评论 -
深入浅出ThreadLocal
深入浅出ThreadLocal一.谈谈你对ThreadLocal的理解??二.ThreadLocal的应用场景三.ThreadLocal的核心源码四.ThreadLocal引发的内存泄露问题及解决一.谈谈你对ThreadLocal的理解??This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses o原创 2021-08-30 21:36:34 · 364 阅读 · 1 评论 -
(JUC)图文并茂!!!! 超详细 偏向锁VS轻量级锁VS重量级锁VS自旋
偏向锁,轻量级锁,重量级锁(1)重量级锁(Moniter)(2)轻量级锁==1.锁膨胀和自旋优化==(3)偏向锁==2.偏向锁撤销的3种情况==(1)当一个对象调用hashcode()方法时:会撤销偏向锁???(2) 当有其他线程使用偏向锁对象时,会将偏向锁升级为轻量级锁(3)当使用wait(),notify()方法时,偏向锁也会撤销==3.批量重偏向和批量撤销==三者 优先级:(上锁消耗的资源越少,优先级越高)(1)偏向锁 > 轻量级锁 > 重量级锁(2)轻量级锁的使用场景:一个原创 2021-03-14 20:29:15 · 1221 阅读 · 5 评论