可重入锁(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,达到最终释放锁
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。