JUC
文章平均质量分 53
前路无畏
自律的艰辛总甜过懊悔的苦果!
专注于java后端技术及解决方案,善于总结,分享!
自律的艰辛总甜过懊悔的苦果!
专注于java后端技术及解决方案,善于总结,分享!
自律的艰辛总甜过懊悔的苦果!
专注于java后端技术及解决方案,善于总结,分享!
展开
-
CAS和hotspot源码
一、用AtomicInteger.addAndGet(int delta)为分析的切入点/** * Atomically adds the given value to the current value. * 原子化的为当前变量添加一个增量delta 德尔塔为增量,比如原子性的添加1 * @param delta the value to add 需要增加的增量,比如1 * @return the updated value 返回的是增加之后的量,比如原来为1原创 2021-06-27 11:25:04 · 242 阅读 · 0 评论 -
Unsafe类中的compareAndSwapInt(Object var1, long var2, int var4, int var5)参数解释
public final native boolean compareAndSwapInt(Object var1, long var2, int var4, int var5);var1:要修改的对象起始地址 如:0x00000111var2:需要修改的具体内存地址 如100 。0x0000011+100 = 0x0000111就是要修改的值的地址注意没有var3var4:期望内存中的值,拿这个值和0x0000111内存中的中值比较,如果为true,则修改,返回ture,否则返回false,等原创 2020-10-22 21:07:31 · 15484 阅读 · 0 评论 -
ReentrantLock中Fair公平锁的执行过程源码分析
1.原理交代state:表示重入锁的重入次数,如果为0是表示锁无人获得。head:直线头结点,默认情况下他的后继结点无值。此时头结点和尾结点均指向此处。tail:指向尾结点,及最后一个结点,初始情况下和head指向同一个首结点。exclusiveOwnerThread:存放当前后的锁的线程。当state=0 && exclusiveOwnerThread = null时可以抢占次锁。 当锁闲置是有新线程过来抢锁时,无须进入队列,可以和第一个结点一并抢占锁。原创 2020-10-19 01:51:12 · 12355 阅读 · 2 评论