
Java源码分析
文章平均质量分 91
带你高效的阅读和分析源码
愤怒的代码
目前从事java行业
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ReentrantLock源码分析
通过 AQS 实现了可重入锁,并且支持公平锁和非公平锁两种模式。其核心逻辑主要通过Sync抽象类来管理,FairSync和分别实现了公平和非公平的锁获取机制。非公平锁:不考虑队列中的等待顺序,允许插队。公平锁:遵循先进先出的原则,保证锁的公平性。锁重入:线程可以多次获取同一把锁,并通过状态变量state记录锁的重入次数。通过深入理解的源码及其背后的AQS实现机制,我们可以更加清晰地掌握 Java 并发包中锁的实现原理。原创 2024-10-15 10:01:13 · 742 阅读 · 0 评论 -
AQS源码分析
(AQS)通过一个状态变量state和一个等待队列,提供了灵活的并发控制机制。无论是独占模式还是共享模式,线程都通过等待队列排队,竞争获取锁。当资源被释放时,等待队列中的线程依次被唤醒继续执行。AQS 通过模板方法模式将资源的具体获取与释放逻辑交给具体的同步器实现(如Semaphore等),而自身负责提供统一的线程管理、队列维护以及状态控制功能。这种设计使得 AQS 成为 Java 并发包中的基础同步工具,极大提高了锁的实现效率和灵活性。原创 2024-10-15 09:48:51 · 1028 阅读 · 0 评论