找出我的线程在ReentrantLock中的位置

时间:2011-06-06 17:01:41

标签: java concurrency locks


我想找出我的线程登陆的ReentrantLock的LockinQueue的位置?是否有一些魔法锁在调用lock.lock()时返回队列中的位置?或者有人知道如何实现这一点吗? 提前谢谢你 托马斯

1 个答案:

答案 0 :(得分:2)

@toto已向我指出它确实使用getQueueLength()提供估算。您可以在获取锁之前或之后取长度,这取决于您想知道长度的原因。

队列锁定较少,因此无论位置如何,在估计值时它可能是不正确的,更不用说方法返回的时间。一般来说,你对这个位置并不感兴趣,因为你应该构造你的代码,因此它很少等待锁定。

也许你可以说出你感兴趣的原因......