举例来说明锁的可重入性

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 都是可重入的锁,可重入锁相对来说简化了并发

编程的开发。

相关文章:

  • 2022-12-23
  • 2021-09-22
  • 2021-10-23
  • 2021-06-06
  • 2021-07-12
  • 2021-10-14
  • 2021-04-11
  • 2021-07-23
猜你喜欢
  • 2021-12-16
  • 2021-08-03
  • 2021-08-17
  • 2022-12-23
  • 2021-12-03
  • 1970-01-01
  • 2022-01-30
相关资源
相似解决方案