ReentrantLock源码的一点总结
Posted yuxin299
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ReentrantLock源码的一点总结相关的知识,希望对你有一定的参考价值。
ReentrantLock 是可重入锁,可重入锁的意思就是同一个线程可以重复获得该锁。
如何做到可重复获得该锁?计数器实现。
第一次加锁,cas比较是不是0,是0设置为1,并设置当前拥有锁的线程;
第二次及后续枷锁,调用acquire方法。
在计数器不是0的情况下,就会比较当前线程是不是同一个线程,如果是同一个线程那么就将技术器+1。
这样就完成了一个重入锁了,重点在于判断是否是同一个线程,同一个线程才能重入。
以上是关于ReentrantLock源码的一点总结的主要内容,如果未能解决你的问题,请参考以下文章
ReentrantLock使用Condition实现线程的等待和唤醒
[源码分析]ReentrantLock & AbstractQueuedSynchronizer
[源码分析]ReentrantLock & AbstractQueuedSynchronizer & Condition