【问题标题】:Find out in what position my thread landed in a ReentrantLock找出我的线程在 ReentrantLock 中的位置
【发布时间】:2011-06-06 17:01:41
【问题描述】:


我想知道我的线程落在了 ReentrantLock 的 LockinQueue 的哪个位置?调用 lock.lock() 时是否有一些魔法锁返回队列中的位置?或者有谁知道如何实现这一点?
提前感谢
托马斯

【问题讨论】:

    标签: java concurrency locks


    【解决方案1】:

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

    队列是无锁的,所以无论位置是什么,在估计值时它可能是不正确的,更不用说在方法返回时。通常你对这个职位不感兴趣,因为你应该构建你的代码,所以它很少等待锁。

    也许你可以说明你为什么感兴趣....

    【讨论】:

    • ReentrantLock.getQueueLength() "返回估计等待获取此锁的线程数。"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 2017-05-30
    • 2017-05-06
    • 2020-10-23
    相关资源
    最近更新 更多