AbstractQueuedSynchronizer.HasQueuedPredecessors Propiedad

Definición

Consulta si algún subproceso ha estado esperando adquirir más tiempo que el subproceso actual.

public bool HasQueuedPredecessors { [Android.Runtime.Register("hasQueuedPredecessors", "()Z", "")] get; }
[<get: Android.Runtime.Register("hasQueuedPredecessors", "()Z", "")>]
member this.HasQueuedPredecessors : bool

Valor de propiedad

true si hay un subproceso en cola que precede al subproceso actual y false si el subproceso actual está al principio de la cola o la cola está vacía.

Atributos

Comentarios

Consulta si algún subproceso ha estado esperando adquirir más tiempo que el subproceso actual.

Una invocación de este método es equivalente a (pero puede ser más eficaz que):

{@code
            getFirstQueuedThread() != Thread.currentThread()
              && hasQueuedThreads()}

Tenga en cuenta que, dado que las cancelaciones debidas a interrupciones y tiempos de espera pueden producirse en cualquier momento, una true devolución no garantiza que algún otro subproceso se adquiera antes del subproceso actual. Del mismo modo, es posible que otro subproceso gane una carrera para poner en cola después de que este método haya devuelto false, debido a que la cola está vacía.

Este método está diseñado para ser utilizado por un sincronizador justo para evitar la bargación. Este método de #tryAcquire sincronizador debe devolver falsey su #tryAcquireShared método debe devolver un valor negativo, si este método devuelve true (a menos que sea una adquisición reentrante). Por ejemplo, el tryAcquire método para un sincronizador de modo exclusivo, justo y reentrante podría tener este aspecto:

{@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
              }
            }}

Agregado en la versión 1.7.

Documentación de Java para java.util.concurrent.locks.AbstractQueuedSynchronizer.hasQueuedPredecessors().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a