IBlockingDeque Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
A Deque
that additionally supports blocking operations that wait for the deque to be non-empty when retrieving an element, and wait for space to be available in the deque when speicher an element.
[Android.Runtime.Register("java/util/concurrent/BlockingDeque", "", "Java.Util.Concurrent.IBlockingDequeInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface IBlockingDeque : IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IBlockingQueue, Java.Util.IDeque
[<Android.Runtime.Register("java/util/concurrent/BlockingDeque", "", "Java.Util.Concurrent.IBlockingDequeInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type IBlockingDeque = interface
interface IBlockingQueue
interface IQueue
interface ICollection
interface IIterable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IDeque
- Abgeleitet
- Attribute
- Implementiert
Hinweise
A Deque
that additionally supports blocking operations that wait for the deque to be non-empty when retrieving an element, and wait for space to be available in the deque when speicher an element.
BlockingDeque
Methoden kommen in vier Formen, mit unterschiedlichen Methoden zum Behandeln von Vorgängen, die nicht sofort erfüllt werden können, aber irgendwann in Der Zukunft zufrieden sein können: Eine Ausnahme löst eine Ausnahme aus, die zweite gibt einen speziellen Wert (entweder null
oder false
, je nach Vorgang) zurück, der dritte blockiert den aktuellen Thread unbegrenzt, bis der Vorgang erfolgreich sein kann, und die vierten Blöcke nur für eine bestimmte maximale Zeitgrenze, bevor sie aufgeben. Diese Methoden sind in der folgenden Tabelle zusammengefasst:
<table class="plain">caption Summary of BlockingDeque methods</caption><tr><th id="First" colspan="5"> First Element (Head)</th></tr<>td><></td<>th id="FThrow" style="font-weight:normal; font-style: italic">Throws exception</th<>id="FValue" style="font-weight:normal; font-style: italic">Special value</th><th id="FBlock" style="font-weight:>< normal; Schriftschnitt: kursiv">Blocks/th<>id="FTimes" style="font-weight:normal; font-style: italic">Times out</th/tr tr>><<th<> id="FInsert" style="text-align:left">Insert</th<>td headers="First FInsert FThrow"#addFirst(Object) addFirst(e)
></td<>td td headers="First FInsert FValue"/td td td headers="First FInsert FBlock"/td td headers="First FInsert FBlock">#putFirst(Object) putFirst(e)
</td><td headers="First FInsert FValue"#offerFirst(Object) offerFirst(e)
></td<>td headers< FInsert FTimes"><#offerFirst(Object, long, TimeUnit) offerFirst(e, time, unit)
/td></tr tr>><<th id="FRemove" style="text-align:left">Remove</th><td headers="First FRemove FThrow"<>#removeFirst() removeFirst()
/td<>td td headers="First FRemove FValue">#pollFirst() pollFirst()
</td td><headers="First FRemove FBlock">#takeFirst() takeFirst()
</td td<>td headers="First FRemove FTimes"<#pollFirst(long, TimeUnit) pollFirst(time, unit)
>/td></tr tr><><th id="FExamine" style=" text-align:left">Examine</th><td headers="First FExamine FThrow"#getFirst() getFirst()
></td td<>headers="First FExamine FValue"<#peekFirst() peekFirst()
>/td><td headers="First FExamine FBlock" style="font -style:italic">not applicable</td td<>headers="First FExamine FTimes" style="font-style:italic">not applicable</td></tr tr>><<th id="Last" colspan="5"> Last Element (Tail)</th></tr><td><></td<>th id="LThrow" style="font-weight:normal; font-style: italic">Throws exception</th th<>id="LValue" style="font-weight:normal; font-style: italic">Special value</th th><id="LBlock" style="font-weight:normal; font-style: italic">Blocks</th th><id="LTimes" style="font-weight:normal; font-style: kursiv">Times out</th<>/tr tr><><th id="LInsert" style="text-align:left">Insert</th><td headers="Last LInsert LThrow"><#addLast(Object) addLast(e)
/td td><headers="Last LInsert LValue"#offerLast(Object) offerLast(e)
></td<>td headers="Last LInsert LBlock"<>#putLast(Object) putLast(e)
/td td<>headers="Last LInsert LTimes"<>#offerLast(Object, long, TimeUnit) offerLast(e, time, unit)
/td></tr tr><><th id="LRemove" style="text-align:left"Remove/th<>td headers="Last LRemove LThrow"<#removeLast() removeLast()
>/td td><headers="Last LRemove LValue">#pollLast() pollLast()
</td td><td headers="Last LRemove LBlock">#takeLast() takeLast()
</td><td headers="Last LRemove LTimes">#pollLast(long, TimeUnit) pollLast(time, unit)
</td></tr tr><><th id="LExamine" style="text-align:left">Examine</th><><td headers="Last LExamine LThrow">#getLast() getLast()
</td><td headers="Last LExamine LValue">#peekLast() peekLast()
</td td<>headers="Last LExamine LBlock" style="font-style:italic">not applicable</td td<>headers="Last LExamine LTimes" style="font-style:italic">not applicable</td></tr></table>
Wie jeder BlockingQueue
ist ein BlockingDeque
Thread sicher, lässt keine NULL-Elemente zu und kann (oder nicht) kapazitätsbeschränkt sein.
Eine BlockingDeque
Implementierung kann direkt als FIFO BlockingQueue
verwendet werden. Die von der BlockingQueue
Schnittstelle geerbten Methoden entsprechen genau BlockingDeque
den Methoden, wie in der folgenden Tabelle angegeben:
<table class="plain">caption Comparison of BlockingQueue and BlockingDeque methods</caption><tr><td></td><th id="BQueue"BlockingQueue
> Method</th th><id="BDeque"> Equivalent BlockingDeque
Method</th/th<>/tr<><>th id="Insert" rowspan="4" style="text-align:left; vertical-align:top">Insert</th><id="add" style="font-weight:normal; text-align:left">><#add(Object) add(e)
</th><td headers="Insert BDeque add">#addLast(Object) addLast(e)
</td<>/tr><tr<>th id="offer1" style="font-weight:normal; text-align:left"<>#offer(Object) offer(e)
/th<>td headers="Insert BDeque offer1"#offerLast(Object) offerLast(e)
<>/td<>/tr>><<th id="put" style="font-weight:normal; text-align:left">#put(Object) put(e)
</th><td headers="Insert BDeque put"<>#putLast(Object) putLast(e)
/td/trd></tr><Tr><th id="offer2" style="font-weight:normal; text-align:left"><#offer(Object, long, TimeUnit) offer(e, time, unit)
/th><td headers="Insert BDeque offer2"#offerLast(Object, long, TimeUnit) offerLast(e, time, unit)
></td<>/tr tr><><th id="Remove" rowspan="4" style="text-align:left; vertical-align:top">Remove</th<>id="remove" style="font-weight:normal; text-align:left"<>#remove() remove()
/th<>td headers="Remove BDeque remove"<>#removeFirst() removeFirst()
/td<>/tr tr><><th id="poll1" style=" Schriftbreite:normal; text-align:left">#poll() poll()
</th><td headers="Remove BDeque poll1"<#pollFirst() pollFirst()
>/td></tr tr><><th id="take" style="font-weight:normal; text-align:left"<>#take() take()
/th<>td headers="Remove BDeque take"#takeFirst() takeFirst()
></td></tr tr><<>th id="poll2" style="font-weight:normal; text-align:left"#poll(long, TimeUnit) poll(time, unit)
<>/th><td headers=" Entfernen Sie BDeque poll2"><#pollFirst(long, TimeUnit) pollFirst(time, unit)
/td<>/tr tr><<>th id="Examine" rowspan="2" style="text-align:left; vertical-align:top">Examine</th th<>id="element" style="font-weight:normal; text-align:left"<>#element() element()
/th<>td headers="Examine BDeque element"<>#getFirst() getFirst()
/td<>/tr tr><><th id="peek" style="font-weight:normal; text-align:left" >#peek() peek()
</th><td headers="Examine BDeque peek"#peekFirst() peekFirst()
></td<>/tr></table>
Auswirkungen auf die Speicherkonsistenz: Wie bei anderen gleichzeitigen Auflistungen werden Aktionen in einem Thread vor dem Platzieren eines Objekts in eine i-happen-before/i-Aktionen> ausgeführt, die auf den Zugriff oder das Entfernen dieses Elements aus dem BlockingDeque
in einem BlockingDeque
<anderen Thread folgen.><
Diese Schnittstelle ist ein Mitglied des Java Collections Framework.
In 1.6 hinzugefügt.
Java-Dokumentation für java.util.concurrent.BlockingDeque
.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Eigenschaften
First |
Ruft das erste Element dieser Deque ab, entfernt jedoch nicht. (Geerbt von IDeque) |
Handle |
Ruft den JNI-Wert des zugrunde liegenden Android-Objekts ab. (Geerbt von IJavaObject) |
IsEmpty |
Gibt zurück, wenn dies |
JniIdentityHashCode |
Gibt den Wert |
JniManagedPeerState |
Status des verwalteten Peers. (Geerbt von IJavaPeerable) |
JniPeerMembers |
Mitgliedszugriff und Aufrufunterstützung. (Geerbt von IJavaPeerable) |
Last |
Ruft das letzte Element dieser Deque ab, entfernt jedoch nicht. (Geerbt von IDeque) |
PeerReference |
Gibt eine JniObjectReference der umbrochenen Java-Objektinstanz zurück. (Geerbt von IJavaPeerable) |
Methoden
Add(Object) |
Fügt das angegebene Element in die Warteschlange ein, die durch diese Deque dargestellt wird (d. h. am Ende dieser Deque), wenn dies sofort möglich ist, ohne kapazitätseinschränkende Einschränkungen zu verletzen, beim Erfolg zurückzukehren und einen |
AddAll(ICollection) |
Fügt alle Elemente in der angegebenen Auflistung dieser Auflistung hinzu (optionaler Vorgang). (Geerbt von ICollection) |
AddFirst(Object) |
Fügt das angegebene Element an der Vorderseite dieser Deque ein, wenn es möglich ist, dies sofort zu tun, ohne Kapazitätsbeschränkungen zu verletzen, wenn |
AddLast(Object) |
Fügt das angegebene Element am Ende dieser Deque ein, wenn es möglich ist, dies sofort zu tun, ohne Kapazitätsbeschränkungen zu verletzen, wenn |
Clear() |
Entfernt alle Elemente aus dieser Auflistung (optionaler Vorgang). (Geerbt von ICollection) |
Contains(Object) |
Gibt zurück |
ContainsAll(ICollection) |
Gibt zurück |
DescendingIterator() |
Gibt einen Iterator über die Elemente in dieser Deque in umgekehrter sequenzieller Reihenfolge zurück. (Geerbt von IDeque) |
Disposed() |
Wird aufgerufen, wenn die Instanz verworfen wurde. (Geerbt von IJavaPeerable) |
DisposeUnlessReferenced() |
Wenn keine offenen Verweise auf diese Instanz vorhanden sind, wird nichts aufgerufen |
DrainTo(ICollection) |
Entfernt alle verfügbaren Elemente aus dieser Warteschlange und fügt sie der angegebenen Auflistung hinzu. (Geerbt von IBlockingQueue) |
DrainTo(ICollection, Int32) |
Entfernt höchstens die angegebene Anzahl verfügbarer Elemente aus dieser Warteschlange und fügt sie der angegebenen Auflistung hinzu. (Geerbt von IBlockingQueue) |
Element() |
Ruft den Kopf der Warteschlange ab, die durch diese Deque dargestellt wird(d. r. das erste Element dieser Deque). |
Equals(Object) |
Vergleicht das angegebene Objekt mit dieser Auflistung für die Gleichheit. (Geerbt von ICollection) |
Finalized() |
Wird aufgerufen, wenn die Instanz abgeschlossen wurde. (Geerbt von IJavaPeerable) |
ForEach(IConsumer) |
Führt die angegebene Aktion für jedes Element der |
GetHashCode() |
Gibt den Hashcodewert für diese Auflistung zurück. (Geerbt von ICollection) |
Iterator() |
Gibt einen Iterator über die Elemente in dieser Deque in der richtigen Reihenfolge zurück. |
Offer(Object) |
Fügt das angegebene Element in die Warteschlange ein, die durch diese Deque dargestellt wird (d. h. am Ende dieser Deque), wenn dies sofort möglich ist, ohne kapazitätseinschränkende Einschränkungen zu verletzen, bei Erfolg zurückzukehren |
Offer(Object, Int64, TimeUnit) |
Fügt das angegebene Element in die Warteschlange ein, die durch diese Deque dargestellt wird (d. h. am Ende dieser Deque), und wartet auf die angegebene Wartezeit, falls erforderlich, bis Platz verfügbar ist. |
OfferFirst(Object) |
Fügt das angegebene Element an der Vorderseite dieser Warteschlange ein, wenn dies möglich ist, ohne Kapazitätsbeschränkungen zu verletzen, wenn es erfolgreich ist |
OfferFirst(Object, Int64, TimeUnit) |
Fügt das angegebene Element an der Vorderseite dieser Warteschlange ein und wartet bei Bedarf auf die angegebene Wartezeit, um verfügbar zu werden. |
OfferLast(Object) |
Fügt das angegebene Element am Ende dieser Deque ein, wenn es möglich ist, dies sofort zu tun, ohne Kapazitätsbeschränkungen zu verletzen, nach Erfolg zurückzukehren |
OfferLast(Object, Int64, TimeUnit) |
Fügt das angegebene Element am Ende dieser Deque ein und wartet bei Bedarf auf die angegebene Wartezeit, um verfügbar zu werden. |
Peek() |
Ruft den Kopf der Warteschlange ab, die durch diese Deque dargestellt wird (d. h. das erste Element dieser Deque), oder gibt zurück |
PeekFirst() |
Ruft ab, entfernt jedoch nicht das erste Element dieser Deque oder gibt zurück |
PeekLast() |
Ruft das letzte Element dieser Deque ab, entfernt sie jedoch nicht, oder gibt zurück |
Poll() |
Ruft den Kopf der Warteschlange ab und entfernt sie, die durch diese Deque dargestellt wird (d. h. das erste Element dieser Deque), oder gibt zurück |
Poll(Int64, TimeUnit) |
Ruft den Kopf der Warteschlange ab, die durch diese Deque dargestellt wird (d. h. das erste Element dieser Deque), und wartet bei Bedarf auf die angegebene Wartezeit, damit ein Element verfügbar wird. |
PollFirst() |
Ruft das erste Element dieser Deque ab und entfernt es oder gibt zurück |
PollFirst(Int64, TimeUnit) |
Ruft das erste Element dieser Deque ab und entfernt es, und wartet bei Bedarf auf die angegebene Wartezeit, damit ein Element verfügbar wird. |
PollLast() |
Ruft das letzte Element dieser Deque ab und entfernt es oder gibt zurück |
PollLast(Int64, TimeUnit) |
Ruft das letzte Element dieser Warteschlange ab und entfernt es, und wartet bei Bedarf auf die angegebene Wartezeit, damit ein Element verfügbar wird. |
Pop() |
Pops an element from the stack represented by this deque. (Geerbt von IDeque) |
Push(Object) |
Verschiebt ein Element auf den Stapel, der durch diese Deque dargestellt wird (d. h. an der Spitze dieser Deque), wenn es möglich ist, dies sofort zu tun, ohne Kapazitätsbeschränkungen zu verletzen, ein |
Put(Object) |
Fügt das angegebene Element in die Warteschlange ein, die durch diese Deque dargestellt wird (d. h. am Ende dieser Deque), und wartet, falls erforderlich, dass Platz verfügbar ist. |
PutFirst(Object) |
Fügt das angegebene Element an der Vorderseite dieser Deque ein, und wartet, falls erforderlich, bis Platz verfügbar ist. |
PutLast(Object) |
Fügt das angegebene Element am Ende dieser Deque ein, und wartet, falls erforderlich, bis Platz verfügbar ist. |
RemainingCapacity() |
Gibt die Anzahl zusätzlicher Elemente zurück, die diese Warteschlange idealerweise akzeptieren kann (in Abwesenheit von Arbeitsspeicher- oder Ressourceneinschränkungen), ohne zu blockieren, oder |
Remove() |
Ruft den Kopf der Warteschlange ab und entfernt sie, die durch diese Deque dargestellt wird (also das erste Element dieser Deque). |
Remove(Object) |
Entfernt das erste Vorkommen des angegebenen Elements aus dieser Deque. |
RemoveAll(ICollection) |
Entfernt alle Elemente dieser Auflistung, die auch in der angegebenen Auflistung enthalten sind (optionaler Vorgang). (Geerbt von ICollection) |
RemoveFirst() |
Ruft das erste Element dieser Deque ab und entfernt es. (Geerbt von IDeque) |
RemoveFirstOccurrence(Object) |
Entfernt das erste Vorkommen des angegebenen Elements aus dieser Deque. |
RemoveIf(IPredicate) |
Entfernt alle Elemente dieser Auflistung, die das angegebene Prädikat erfüllen. (Geerbt von ICollection) |
RemoveLast() |
Ruft das letzte Element dieser Deque ab und entfernt es. (Geerbt von IDeque) |
RemoveLastOccurrence(Object) |
Entfernt das letzte Vorkommen des angegebenen Elements aus dieser Deque. |
RetainAll(ICollection) |
Behält nur die Elemente in dieser Auflistung bei, die in der angegebenen Auflistung enthalten sind (optionaler Vorgang). (Geerbt von ICollection) |
SetJniIdentityHashCode(Int32) |
Legen Sie den von |
SetJniManagedPeerState(JniManagedPeerStates) |
A |
SetPeerReference(JniObjectReference) |
Legen Sie den von |
Size() |
Gibt die Anzahl der Elemente in dieser Deque zurück. |
Spliterator() |
Erstellt eine |
Take() |
Ruft den Kopf der Warteschlange ab, die durch diese Deque dargestellt wird (d. h. das erste Element dieser Deque), und wartet bei Bedarf, bis ein Element verfügbar wird. |
TakeFirst() |
Ruft das erste Element dieser Deque ab und entfernt es, wenn erforderlich, bis ein Element verfügbar ist. |
TakeLast() |
Ruft das letzte Element dieser Deque ab und entfernt es, wenn erforderlich, bis ein Element verfügbar ist. |
ToArray() |
Gibt ein Array zurück, das alle Elemente in dieser Auflistung enthält. (Geerbt von ICollection) |
ToArray(IIntFunction) |
Gibt ein Array zurück, das alle Elemente in dieser Auflistung enthält, wobei die bereitgestellte |
ToArray(Object[]) |
Gibt ein Array zurück, das alle Elemente in dieser Auflistung enthält; Der Laufzeittyp des zurückgegebenen Arrays ist die des angegebenen Arrays. (Geerbt von ICollection) |
UnregisterFromRuntime() |
Heben Sie die Registrierung dieser Instanz auf, damit die Laufzeit sie nicht aus zukünftigen Java.Interop.JniRuntime+JniValueManager.PeekValue Aufrufen zurückgibt. (Geerbt von IJavaPeerable) |
Explizite Schnittstellenimplementierungen
IIterable.Spliterator() |
Erstellt eine |
Erweiterungsmethoden
JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
JavaCast<TResult>(IJavaObject) |
A |
GetJniTypeName(IJavaPeerable) |
A |
OfferFirstAsync(IBlockingDeque, Object) |
A |
OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit) |
A |
OfferLastAsync(IBlockingDeque, Object) |
A |
OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit) |
A |
PollFirstAsync(IBlockingDeque, Int64, TimeUnit) |
A |
PollLastAsync(IBlockingDeque, Int64, TimeUnit) |
A |
PutFirstAsync(IBlockingDeque, Object) |
A |
PutLastAsync(IBlockingDeque, Object) |
A |
TakeFirstAsync(IBlockingDeque) |
A |
TakeLastAsync(IBlockingDeque) |
A |
OfferAsync(IBlockingQueue, Object) |
A |
OfferAsync(IBlockingQueue, Object, Int64, TimeUnit) |
A |
PollAsync(IBlockingQueue, Int64, TimeUnit) |
A |
PutAsync(IBlockingQueue, Object) |
A |
TakeAsync(IBlockingQueue) |
A |
ToEnumerable(IIterable) |
A |
ToEnumerable<T>(IIterable) |
A |