ReentrantLock 是可重入锁,可重入锁的意思就是同一个线程可以重复获得该锁。

如何做到可重复获得该锁?计数器实现。

第一次加锁,cas比较是不是0,是0设置为1,并设置当前拥有锁的线程;

第二次及后续枷锁,调用acquire方法。

在计数器不是0的情况下,就会比较当前线程是不是同一个线程,如果是同一个线程那么就将技术器+1。

这样就完成了一个重入锁了,重点在于判断是否是同一个线程,同一个线程才能重入。

版权声明:本文为yuxin299原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yuxin299/p/11178392.html