我有條件變量名爲cond。如何檢查是否有任何等待條件變量的線程?
是否有任何方法可以給我真或假,如果有任何線程等待在cond?
我需要這樣的東西: 布爾cond.isAwaitingSetEmpty()
感謝您的幫助
我有條件變量名爲cond。如何檢查是否有任何等待條件變量的線程?
是否有任何方法可以給我真或假,如果有任何線程等待在cond?
我需要這樣的東西: 布爾cond.isAwaitingSetEmpty()
感謝您的幫助
如果 「條件」 你的意思是ReentrantLock.newCondition()
創建Condition
,那麼你可以使用ReentrantLock.hasWaiters(Condition cond)
。
謝謝你這麼快的回答。它完美的作品。 – GrzegorzM
這可從Lock
的Condition
勢必:
http://download.oracle.com/javase/6/docs/api/java/util/concurrent/locks/ReentrantLock.html
例如:
getWaitingThreads(Condition condition)
getWaitQueueLength(Condition condition)
等
我懷疑這是一個XY問題,而且[鎖定對象](http://download.oracle.com/javase/tutorial/essential/concurrency/newlocks.html)的順序。 – 2011-11-03 16:46:10