ConditionPriorityBlockingQueue

public class ConditionPriorityBlockingQueue
extends Object

java.lang.Object
😎 com.android.tradefed.util.ConditionPriorityBlockingQueue<T>


Eine Thread-sichere Klasse mit ERROR(/PriorityBlockingQueue)-ähnlichen Vorgängen, die Objekte abrufen können die eine bestimmte Bedingung erfüllen.

Iterationen sind auch threadsicher, aber nicht konsistent. Eine Kopie der Warteschlange wird am Iterator erstellt. und diese Kopie wird als Iterationsziel verwendet. Wenn Warteschlange geändert wird während wird kein ERROR(/ConcurrentModificationException) ausgegeben, auch nicht die geänderten Inhalte.

Weitere Informationen:

Zusammenfassung

Verschachtelte Klassen

class ConditionPriorityBlockingQueue.AlwaysMatch<T>

Ein ConditionPriorityBlockingQueue.IMatcher die mit einem beliebigen Objekt übereinstimmt. 

interface ConditionPriorityBlockingQueue.IMatcher<T>

Eine Schnittstelle, mit der bestimmt werden kann, ob Elemente eine bestimmte Bedingung erfüllen. 

Öffentliche Konstruktoren

ConditionPriorityBlockingQueue()

Erstellt: ConditionPriorityBlockingQueue

Die Elemente werden in FIFO-Reihenfolge priorisiert.

ConditionPriorityBlockingQueue( c)

Erstellt: ConditionPriorityBlockingQueue

Öffentliche Methoden

boolean add(T addedElement)

Fügt das angegebene Element in diese Warteschlange ein.

T addUnique(IMatcher<T> matcher, T object)

Fügt dieser Warteschlange ein Element hinzu. Dadurch werden alle vorhandenen Objekte ersetzt, die die angegebene Bedingung erfüllen.

void clear()

Entfernt alle Elemente aus dieser Warteschlange.

boolean contains(T object)

Ermittelt, ob ein Objekt derzeit in dieser Warteschlange enthalten ist.

getCopy()

Kopie des Inhalts der Warteschlange abrufen.

iterator()

T poll(long timeout, TimeUnit unit)

Ruft das Minimum ab und entfernt es, wie anhand des angegebenen ERROR(/Comparator)-Elements T in in der Warteschlange.

T poll(long timeout, TimeUnit unit, IMatcher<T> matcher)

Ruft das Minimum ab und entfernt es, wie anhand des angegebenen ERROR(/Comparator)-Elements T in der Warteschlange, wobei matcher.matches(T) den Wert true hat.

T poll(IMatcher<T> matcher)

Ruft das Minimum ab und entfernt es, wie anhand des angegebenen ERROR(/Comparator)-Elements T in der Warteschlange, wobei matcher.matches(T) den Wert true hat.

T poll()

Ruft den Kopf dieser Warteschlange ab und entfernt ihn.

boolean remove(T object)

Entfernt ein Element aus der Warteschlange.

int size()
T take()

Ruft das Minimum ab und entfernt es, wie anhand des angegebenen ERROR(/Comparator)-Elements T in in der Warteschlange.

T take(IMatcher<T> matcher)

Ruft das erste Element T in der Warteschlange, in der sich matcher.matches(T) befindet, ab und entfernt es true und wird gegebenenfalls gewartet, bis ein solches Element verfügbar wird.

Öffentliche Konstruktoren

ConditionPriorityBlockingQueue

public ConditionPriorityBlockingQueue ()

Erstellt: ConditionPriorityBlockingQueue

Die Elemente werden in FIFO-Reihenfolge priorisiert.

ConditionPriorityBlockingQueue

public ConditionPriorityBlockingQueue ( c)

Erstellt: ConditionPriorityBlockingQueue

Parameter
c : Der ERROR(/Comparator), der zur Priorisierung der Warteschlange verwendet wird.

Öffentliche Methoden

Hinzufügen

public boolean add (T addedElement)

Fügt das angegebene Element in diese Warteschlange ein. Da die Warteschlange unbegrenzt ist, wird diese Methode wird nie blockiert.

Parameter
addedElement T: das hinzuzufügende Element

Returns
boolean true

Ausgabe
ClassCastException Das angegebene Element kann nicht mit Elementen verglichen werden. aktuell in der Prioritätswarteschlange entsprechend der Reihenfolge der Prioritätswarteschlange
NullPointerException Das angegebene Element ist null.

addUnique

public T addUnique (IMatcher<T> matcher, 
                T object)

Fügt dieser Warteschlange ein Element hinzu. Dadurch werden alle vorhandenen Objekte ersetzt, die die angegebene Bedingung erfüllen.

Parameter
matcher IMatcher: der Matcher zum Bewerten vorhandener Objekte

object T: das hinzuzufügende Objekt

Returns
T Das ersetzte Objekt oder null, wenn kein Objekt vorhanden ist

Löschen

public void clear ()

Entfernt alle Elemente aus dieser Warteschlange.

enthält

public boolean contains (T object)

Ermittelt, ob ein Objekt derzeit in dieser Warteschlange enthalten ist.

Parameter
object T: das zu suchende Objekt

Returns
boolean true, wenn das angegebene Objekt in der Warteschlange enthalten ist. false> sonst.

GetCopy

public  getCopy ()

Kopie des Inhalts der Warteschlange abrufen.

Returns

Iterator

public  iterator ()

Returns

Umfrage

public T poll (long timeout, 
                TimeUnit unit)

Ruft das Minimum ab und entfernt es, wie anhand des angegebenen ERROR(/Comparator)-Elements T in in der Warteschlange.

Blockiert bis zu timeout-mal, bis ein Element verfügbar ist.

Parameter
timeout long: die Zeit, die gewartet wird, bis ein Element verfügbar ist

unit TimeUnit: die ERROR(/TimeUnit) des Zeitlimits

Returns
T mindestens das übereinstimmende Element oder null, wenn keine übereinstimmenden Elemente vorhanden sind

Umfrage

public T poll (long timeout, 
                TimeUnit unit, 
                IMatcher<T> matcher)

Ruft das Minimum ab und entfernt es, wie anhand des angegebenen ERROR(/Comparator)-Elements T in der Warteschlange, wobei matcher.matches(T) den Wert true hat.

Blockiert bis zu timeout-mal, bis ein Element verfügbar ist.

Parameter
timeout long: die Zeit, die gewartet wird, bis ein Element verfügbar ist

unit TimeUnit: die ERROR(/TimeUnit) des Zeitlimits

matcher IMatcher: der IMatcher, der zum Bewerten von Elementen verwendet werden soll

Returns
T mindestens das übereinstimmende Element oder null, wenn keine übereinstimmenden Elemente vorhanden sind

Umfrage

public T poll (IMatcher<T> matcher)

Ruft das Minimum ab und entfernt es, wie anhand des angegebenen ERROR(/Comparator)-Elements T in der Warteschlange, wobei matcher.matches(T) den Wert true hat.

Parameter
matcher IMatcher: der IMatcher, der zum Bewerten von Elementen verwendet werden soll

Returns
T mindestens das übereinstimmende Element oder null, wenn keine übereinstimmenden Elemente vorhanden sind

Umfrage

public T poll ()

Ruft den Kopf dieser Warteschlange ab und entfernt ihn.

Returns
T dem Kopf dieser Warteschlange oder null, wenn die Warteschlange leer ist

entfernen

public boolean remove (T object)

Entfernt ein Element aus der Warteschlange.

Parameter
object T: das zu entfernende Objekt

Returns
boolean true, wenn das angegebene Objekt aus der Warteschlange entfernt wurde. false> sonst.

Größe

public int size ()

Returns
int Anzahl der Elemente in der Warteschlange

nehmen

public T take ()

Ruft das Minimum ab und entfernt es, wie anhand des angegebenen ERROR(/Comparator)-Elements T in in der Warteschlange.

Blockiert auf unbestimmte Zeit, damit ein Element verfügbar wird.

Returns
T Kopf dieser Warteschlange

Ausgabe
InterruptedException bei Unterbrechung während des Wartens

nehmen

public T take (IMatcher<T> matcher)

Ruft das erste Element T in der Warteschlange, in der sich matcher.matches(T) befindet, ab und entfernt es true und wird gegebenenfalls gewartet, bis ein solches Element verfügbar wird.

Parameter
matcher IMatcher: der IMatcher, der zum Bewerten von Elementen verwendet werden soll

Returns
T das übereinstimmende Element

Ausgabe
InterruptedException bei Unterbrechung während des Wartens