什么是可重入锁(ReentrantLock)?

举例来讲明锁的可重入性 编程

public class UnReentrant{ 并发

Lock lock = new Lock(); spa

public void outer(){ 线程

lock.lock(); 资源

inner(); 开发

lock.unlock(); 同步

} class

public void inner(){ margin

lock.lock(); top

//do something

lock.unlock();

}

}

outer 中调用了 inner,outer 先锁住了 lock,这样 inner 就不能再获取 lock。 

实调用 outer 的线程已经获取了 lock 可是不能在 inner 中重复利用已经获取 

的锁资源这种锁即称之为 不可重入可重入就意味着线程能够进入任何一个它 

已经拥有的锁所同步着的代码块

synchronized、ReentrantLock 都是可重入的锁可重入锁相对来讲简化了并发 

编程的开发

相关文章
相关标签/搜索