ReentrantLock 允许线程递归地获取相同的锁,因此锁计数在连续锁定/解锁时递增和递减。而锁计数必须在释放给其他线程之前减少到零。
为什么或在什么情况下我会编写代码以递归方式获取锁?
我能看到的唯一一点是让我们可以方便地编写递归代码,其中递归调用方法(在其执行过程中获取锁)。
在其他情况下,线程递归/重复获取锁可能有用吗?
澄清问题:
- 请忽略可重入的锁。恰好递归是由可重入锁提供的。
- 我指的是锁的递归特性
- 请不要回答为什么使用可重入锁。
- 请不要回答“递归不是可重入锁的主要特征”
- 我想知道什么情况需要递归获取锁,不管锁是否可重入。