多线程
文章平均质量分 95
adj20
致力于从小菜鸟变成大菜鸟
展开
-
AQS源码解析---独占锁释放
在梳理清楚独占锁获取后,独占锁的释放就相对简单了。锁的释放不涉及非公平,公平的说法,逻辑都是一样的。一 release在demo代码中打断点,进入到unlock方法:图 1.1进入到release方法后,整个核心的逻辑就是tryRelease方法和unparkSuccessor方法,先来分析tryRelease方法。图 1.2二 tryRelease 先声明下,在执行tryRelease的时候设置stat...原创 2022-03-13 12:03:40 · 512 阅读 · 0 评论 -
AQS源码解析---独占锁获取
一 简介AQS(AbstractQueuedSynchronizer)是java并发工具的基础,底层很多实现都采用了CAS乐观锁的方式,在锁获取冲突时,通过自旋重试来轻量的获取锁(synchronized的可重入锁、轻量级锁和重量级锁也有CAS操作,我理解目的都是尽可能的减少获取锁带来的上下文开销)。 AQS是一个抽象类,但是没有抽象方法。这样子类可以根据自己的需要实现对象的方法,而不用实现所有的方法,未实现的方法会默认抛出UnsupportedOperationException异常。..原创 2022-03-05 17:33:53 · 482 阅读 · 0 评论