How to check is any thread waiting on condition va

2019-06-02 08:18发布

问题:

I have Condition variable named cond.

Is there any method which could give me true or false if there is any thread awaiting on cond?

I need something like: Boolean cond.isAwaitingSetEmpty()

Thanks for help

回答1:

If by "condition" you mean a Condition created by ReentrantLock.newCondition(), then you can use ReentrantLock.hasWaiters(Condition cond).



回答2:

It's available from the Lock that the Condition is bound to:

http://download.oracle.com/javase/6/docs/api/java/util/concurrent/locks/ReentrantLock.html

For example:

getWaitingThreads(Condition condition) 
getWaitQueueLength(Condition condition) 

etc.