Как проверить, ожидает ли какой-либо поток переменную условия? - PullRequest
1 голос
/ 03 ноября 2011

У меня есть переменная условия с именем cond.

Есть ли какой-нибудь метод, который мог бы дать мне значение true или false, если на cond ожидается какой-либо поток?

Мне нужно что-то вроде: Boolean cond.isAwaitingSetEmpty ()

Спасибо за помощь

Ответы [ 2 ]

4 голосов
/ 03 ноября 2011

Если под «условием» вы подразумеваете Condition, созданный ReentrantLock.newCondition(), то вы можете использовать ReentrantLock.hasWaiters(Condition cond).

0 голосов
/ 03 ноября 2011

Доступно с Lock, с которым Condition связан:

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

Например:

getWaitingThreads(Condition condition) 
getWaitQueueLength(Condition condition) 

и т.д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...