Java并发系列(10)彻底理解ReentrantLock
本站小福利 点我获取阿里云优惠券 原文作者:github:CL0610/Java-concurrency 免责声明: 1.本文所转载文章均来自公开网络。 2.如果出处标注有误或侵犯到原著作者权益,请联系删除。 3.转载文章请注明原文链接和作者,否则产生的任何版权纠纷均与本站无关。 1. ReentrantLock的介绍 ReentrantLock重入锁,是实现Lock接口的一个类,也是在实际编程中使用频率很高的一个锁, 支持重入性,表示能够对共享资源能够重复加锁, 即当前线程获取该锁再次获取不会被阻塞 。在java关键字synchronized隐式支持重入性 (关于synchronized可以 看这篇文章 ), synchronized通过获取自增,释放自减的方式实现重入。与此同时,ReentrantLock还支持 公平锁和非公平锁 两种方式。那么, 要想完完全全的弄懂ReentrantLock的话,主要也就是ReentrantLock同步语义的学习:1. 重入性的实现原理;2. 公平锁和非公平锁。 2. 重入性的实现原理 要想支持重入性,就要解决两个问题:**1. 在线程获取锁的时候,如果已经获取锁的线程是当前线程的话则直接再次获取成功;2. 由于锁会被获取n次,那么只有锁在被释放同样的n次之后, 该锁才算是完全释放成功。**通过 这篇文章 ,我们知道