AbstractQueuedSynchronizer.HasQueuedPredecessors Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Запросы, ожидающие получения потока дольше текущего потока.
public bool HasQueuedPredecessors { [Android.Runtime.Register("hasQueuedPredecessors", "()Z", "")] get; }
[<get: Android.Runtime.Register("hasQueuedPredecessors", "()Z", "")>]
member this.HasQueuedPredecessors : bool
Значение свойства
true Если перед текущим потоком существует очередь, а false текущий поток находится в голове очереди или очередь пуста.
- Атрибуты
Комментарии
Запросы, ожидающие получения потока дольше текущего потока.
Вызов этого метода эквивалентен (но может быть более эффективным, чем):
{@code
getFirstQueuedThread() != Thread.currentThread()
&& hasQueuedThreads()}
Обратите внимание, что, так как отмена из-за прерываний и времени ожидания может возникать в любое время, true возврат не гарантирует, что другой поток получится до текущего потока. Аналогичным образом, для другого потока можно выиграть гонку, чтобы закручиться после возврата falseэтого метода, из-за того, что очередь пуста.
Этот метод предназначен для использования справедливым синхронизатором, чтобы избежать штриховки. Такой метод синхронизатора #tryAcquire должен возвращать false, и его #tryAcquireShared метод должен возвращать отрицательное значение, если этот метод возвращает (если это не является true повторным получением). Например, tryAcquire метод для справедливой, повторной передачи и монопольного синхронизатора режима может выглядеть следующим образом:
{@code
protected boolean tryAcquire(int arg) {
if (isHeldExclusively()) {
// A reentrant acquire; increment hold count
return true;
} else if (hasQueuedPredecessors()) {
return false;
} else {
// try to acquire normally
}
}}
Добавлено в версии 1.7.
Java документации по java.util.concurrent.locks.AbstractQueuedSynchronizer.hasQueuedPredecessors().
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".