如果同一个线程一次又一次地获取锁,ReentrantLock 如何公平?

How is ReentrantLock fair if the same thread keeps acquiring the lock again and again?

我对高级 Java 和学习可重入锁还很陌生。我知道 ReentrantLock 有一个公平参数,它确保锁被分配给最饥饿的线程(与同步内部锁的情况不同。)

然而,Reentrant 也意味着同一个线程可以通过增加 holdCount 来一次又一次地重新获取锁。如果同一个线程永远获取锁,如何保证公平?

如果线程重新进入锁,意味着它还没有解锁,给其他线程一个公平的机会。公平是在没有持有锁的情况下选择下一个线程。