如果线程获得10个可重入锁并死亡会发生什么?

时间:2014-10-10 13:41:30

标签: java reentrantlock

假设一个线程多次获取资源上的可重入锁并死掉。 资源会发生什么? 另一个客户端可以访问该资源吗?

2 个答案:

答案 0 :(得分:3)

示范证明:

public static void main(String[] args) throws InterruptedException {
  final ReentrantLock lock = new ReentrantLock();
  final Thread t = new Thread(()->lock.lock());
  t.start();
  t.join();
  System.out.println(t.isAlive());
  System.out.println(lock.tryLock());
}

打印

false
false

答案 1 :(得分:0)

对我来说听起来像是经典的僵局。如果所有者没有释放锁定 - 它将永远保持锁定并为所有人保留。

相关问题