Как определяется самый длинный ожидающий поток по условной переменной? - PullRequest
0 голосов
/ 15 октября 2019

Я создал условную переменную из блокировки повторного входа с параметром истины, установленным в значение true. В моем приложении несколько ожидающих потоков для условной переменной. Я прочитал в документации, что если я вызову метод сигнала, самый длинный ожидающий поток будет сигнализироваться первым. Я хочу знать, не соответствует ли условие для пробужденного потока, и он снова вызывает ожидание, сбросит ли его время ожидания или продолжит накапливаться.

private ReentrantLock lock = new ReentrantLock(true);
private Condition condition = lock.newCondition();

lock.lock();
while (!isAllowedToProceed){
    condition.await();
}
lock.unlock();

1 Ответ

1 голос
/ 15 октября 2019

Время ожидания - это время ожидания потока. Это не включает в себя какие-либо предыдущие ожидания. Вы можете думать об этом как о очереди FIFO.

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