可重入锁(ReentrantLock)简介说明
下文笔者讲述可重入锁(ReentrantLock)简介说明,如下所示
ReentrantLock重入锁简介
ReentrantLock重入锁:
ReentrantLock是Lock接口的实现类
ReentrantLock是我们日常开发中使用最多的一个锁,她是一个可重入锁,指同一个线程对同一资源多次获取时,不会被阻塞
重入性的实现原理
例:
ReentrantLock
state初始化为0,代表未锁定状态
A线程lock()时,会调用tryAcquire()独占该锁并将state+1
此后,其他线程再tryAcquire()时就会失败
直到A线程unlock()到state=0(即释放锁)为止
其它线程才有机会获取该锁
在“线程A”释放锁之前,A线程自己是可以重复获取此锁(state会累加)
以上就是重入锁的概念,释放锁每次都会减一,加锁多次,需释放多次,才能使state=0,达到最终释放锁
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


