【问题标题】:How is the longest waiting thread on a condition variable determined?如何确定条件变量上的最长等待线程?
【发布时间】:2019-10-15 14:50:59
【问题描述】:

我从可重入锁创建了一个条件变量,并将公平参数设置为 true。我的应用程序中的条件变量上有多个等待线程。我在文档中读到,如果我调用信号方法,最长等待的线程将首先发出信号。我想知道唤醒线程的条件是否不成立,他再次调用等待,它的等待时间会重置还是继续累积。

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

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

【问题讨论】:

    标签: java condition-variable locks


    【解决方案1】:

    等待时间是线程当前等待的时间。它不包括任何先前的等待。你可以把它想象成一个先进先出队列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2016-09-05
      相关资源
      最近更新 更多