摘要:
前两节你应该掌握了ReentrantLock加锁成功和加锁失败入队的核心逻辑,是如何通过AQS中的3个组件做到的。今天来我们看下: ReentrantLock中,当线程释放锁时的逻辑 释放锁的过程及源码剖析 释放锁的过程及源码剖析 目前经过线程1、线程2使用ReentrantLock.lock()后 阅读全文
摘要:
上一节,你应该学到了ReentrantLock底层基于AQS的3个小组件 state、owner、queue。并且了解了下一个线程1进行加锁修改owner和state的过程。还记得么?加锁成功后,如下图所示的状态: 首次加锁的时候,只使用到了owner和state这两个小组件,并没有涉及到等待队列。 阅读全文