什么是可重入锁(ReentrantLock)?
Posted programb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是可重入锁(ReentrantLock)?相关的知识,希望对你有一定的参考价值。
举例来说明锁的可重入性
public class UnReentrant{
Lock lock = new Lock();
public void outer(){
lock.lock();
inner();
lock.unlock();
}
public void inner(){
lock.lock();
//do something
lock.unlock();
}
}
outer 中调用了 inner,outer 先锁住了 lock,这样 inner 就不能再获取 lock。其
实调用 outer 的线程已经获取了 lock 锁,但是不能在 inner 中重复利用已经获取
的锁资源,这种锁即称之为 不可重入可重入就意味着:线程可以进入任何一个它
已经拥有的锁所同步着的代码块。
synchronized、ReentrantLock 都是可重入的锁,可重入锁相对来说简化了并发
编程的开发。
以上是关于什么是可重入锁(ReentrantLock)?的主要内容,如果未能解决你的问题,请参考以下文章