Поделиться через


IBlockingDeque Интерфейс

Определение

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

[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
Производный
Атрибуты
Реализации

Комментарии

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

BlockingDeque методы приходят в четырех формах с различными способами обработки, которые не могут быть удовлетворены немедленно, но могут быть удовлетворены в какой-то момент в будущем: один выдает исключение, второй возвращает специальное значение ( null либо false, в зависимости от операции), третий блок блокирует текущий поток на неопределенный срок до тех пор, пока операция не сможет успешно завершиться, и четвертые блоки только для заданного максимального ограничения времени, прежде чем отказаться. Эти методы приведены в следующей таблице:

<table class="plain"><caption Summary of LockDeque methods</caption><>tr th><id="First" colspan="5"> First Element (Head)</<>th/tr tr><><td/td<>>< th id="FThrow" style="font-weight:normal; font-style: italic">Throws exception</th><id="FValue" style="font-weight:normal; font-style: itic"Special value</<>th id=">FBlock" style="font-weight: нормальный; стиль шрифта: курсив"Blocks</th 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 headers="First FInsert FValue"/><td td headers="First FInsert FBlock"#putFirst(Object) putFirst(e)><#offerFirst(Object) offerFirst(e)<>/td><td headers="First Fd headers="First FD 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<>headers="First FRemove FValue"#pollFirst() pollFirst()<>/td td headers="First FRemove FBlock"<#takeFirst() takeFirst()>/<>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:< курсив">not applicable</td td<>headers="First FExamine FTimes" style="font-style:italic">notable</td<>/tr tr<>th><id="Last" colspan="5"> Последний элемент (Tail)</th></tr tr><<>td/td><<> th id="LThrow" style="font-weight:normal; font-style: italic">Throws exception</th><id="LValue" style="font-weight:normal; font-style: itic"Special value</<>th id=">LBlock" style="font-weight:normal; font-style: italic"Blocks</<>th id="LTimes" style=">font-weight:normal; font-style: курсив">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"/td<>td headers="Last LInsert LTimes"/td lTimes">#offerLast(Object, long, TimeUnit) offerLast(e, time, unit)><#putLast(Object) putLast(e)</td></tr><><th id="LRemove" style="text-align:left"Remove/th<>td headers="Last LRemove LThrow"/td<>td headers="Last LRemove LValue"<#removeLast() removeLast()<>#pollLast() pollLast()>/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<>/td<>/tr></table>

Как и любой BlockingQueue, потокобезопасный BlockingDeque , не разрешает пустые элементы и может (или не быть) ограничен емкостью.

Реализация BlockingDeque может использоваться непосредственно в качестве FIFO BlockingQueue. Методы, унаследованные от BlockingQueue интерфейса, точно эквивалентны BlockingDeque методам, как указано в следующей таблице:

<table class="plain"><caption Comparison of LockQueue and LockDeque methods</caption><>tr><td/td><>< th id="BQueue" Method/><th id="BDeque"> Equivalent BlockingDeque Method<<<>/th/tr<>><th id="Insert"BlockingQueue> rowspan="4" style="text-align:left; вертикальное выравнивание:top">Insert</th 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 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></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; вертикальное выравнивание:top">Remove</th<>id="remove" style="font-weight:normal; text-align:left"/<>th td headers="Remove BDeque remove"#remove() remove()#removeFirst() removeFirst()>><</td<>/tr tr<>th><id="poll1" style=" font-weight: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><<>id="poll2" style="font-weight:normal; text-align:#poll(long, TimeUnit) poll(time, unit)<>left"/th><td headers=" Remove BDeque poll2">#pollFirst(long, TimeUnit) pollFirst(time, unit)</td></tr tr><th><id="Examine" rowspan="2" style="text-align:left; вертикальное выравнивание: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="Проверить BDeque peek"#peekFirst() peekFirst()></td<>/tr></table>

Эффекты согласованности памяти: как и в других параллельных коллекциях, действия в потоке перед размещением объекта в BlockingDeque<действия i>happen-before</i> после доступа или удаления этого элемента из BlockingDeque другого потока.

Этот интерфейс является членом Платформы коллекций Java.

Добавлено в версии 1.6.

Документация по Java для java.util.concurrent.BlockingDeque.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Свойства

First

Извлекает, но не удаляет первый элемент этого дека.

(Унаследовано от IDeque)
Handle

Возвращает значение JNI базового объекта Android.

(Унаследовано от IJavaObject)
IsEmpty

Возвращает, если этот Collection элемент не содержит элементов.

(Унаследовано от ICollection)
JniIdentityHashCode

Возвращает значение java.lang.System.identityHashCode() для упаковаемого экземпляра.

(Унаследовано от IJavaPeerable)
JniManagedPeerState

Состояние управляемого однорангового узла.

(Унаследовано от IJavaPeerable)
JniPeerMembers

Поддержка доступа к членам и вызовов.

(Унаследовано от IJavaPeerable)
Last

Извлекает, но не удаляет последний элемент этого дека.

(Унаследовано от IDeque)
PeerReference

JniObjectReference Возвращает экземпляр объекта Java в оболочке.

(Унаследовано от IJavaPeerable)

Методы

Add(Object)

Вставляет указанный элемент в очередь, представленную этим деком (иными словами, в хвосте этого дека), если это можно сделать немедленно, не нарушая ограничения емкости, возвращая true при успешном выполнении и вызывая IllegalStateException исключение, если пробел в данный момент недоступен.

AddAll(ICollection)

Добавляет все элементы указанной коллекции в эту коллекцию (необязательно).

(Унаследовано от ICollection)
AddFirst(Object)

Вставляет указанный элемент перед этим деком, если это можно сделать немедленно, не нарушая ограничения емкости, вызывая IllegalStateException исключение, если в настоящее время нет свободного места.

AddLast(Object)

Вставляет указанный элемент в конец этого дека, если это можно сделать немедленно, не нарушая ограничения емкости, вызывая IllegalStateException исключение, если в настоящее время нет свободного места.

Clear()

Удаляет все элементы из этой коллекции (необязательной операции).

(Унаследовано от ICollection)
Contains(Object)

Возвращает, true если этот дек содержит указанный элемент.

ContainsAll(ICollection)

Возвращает, true содержит ли эта коллекция все элементы в указанной коллекции.

(Унаследовано от ICollection)
DescendingIterator()

Возвращает итератор над элементами этого дека в обратном последовательном порядке.

(Унаследовано от IDeque)
Disposed()

Вызывается при удалении экземпляра.

(Унаследовано от IJavaPeerable)
DisposeUnlessReferenced()

Если нет невыполненных ссылок на этот экземпляр, то вызывается Dispose(); в противном случае ничего не делает.

(Унаследовано от IJavaPeerable)
DrainTo(ICollection)

Удаляет все доступные элементы из этой очереди и добавляет их в данную коллекцию.

(Унаследовано от IBlockingQueue)
DrainTo(ICollection, Int32)

Удаляет по крайней мере заданное количество доступных элементов из этой очереди и добавляет их в данную коллекцию.

(Унаследовано от IBlockingQueue)
Element()

Извлекает, но не удаляет, голову очереди, представленную этим деком (другими словами, первый элемент этого дека).

Equals(Object)

Сравнивает указанный объект с этой коллекцией для равенства.

(Унаследовано от ICollection)
Finalized()

Вызывается при завершении экземпляра.

(Унаследовано от IJavaPeerable)
ForEach(IConsumer)

Выполняет заданное действие для каждого элемента Iterable до тех пор, пока не будут обработаны все элементы или действие выдает исключение.

(Унаследовано от IIterable)
GetHashCode()

Возвращает хэш-значение кода для этой коллекции.

(Унаследовано от ICollection)
Iterator()

Возвращает итератор над элементами в этой деку в правильной последовательности.

Offer(Object)

Вставляет указанный элемент в очередь, представленную этим деком (иными словами, в хвосте этого дека), если это можно сделать немедленно, не нарушая ограничения емкости, возвращая true при успешном выполнении и false если пробел в настоящее время недоступен.

Offer(Object, Int64, TimeUnit)

Вставляет указанный элемент в очередь, представленную этим деком (другими словами, в хвосте этого дека), ожидая до указанного времени ожидания, если необходимо, чтобы пространство стало доступным.

OfferFirst(Object)

Вставляет указанный элемент перед этим деком, если это можно сделать немедленно, не нарушая ограничения емкости, возвращая true при успешном выполнении и false если в данный момент пробел недоступен.

OfferFirst(Object, Int64, TimeUnit)

Вставляет указанный элемент перед этим деком, ожидая до указанного времени ожидания при необходимости, чтобы пространство стало доступным.

OfferLast(Object)

Вставляет указанный элемент в конец этого декада, если это возможно, немедленно не нарушая ограничения емкости, возвращая true при успешном выполнении и false если в настоящее время нет места.

OfferLast(Object, Int64, TimeUnit)

Вставляет указанный элемент в конец этого события, ожидая до указанного времени ожидания при необходимости, чтобы пространство стало доступным.

Peek()

Извлекает, но не удаляет, голову очереди, представленную этим деком (другими словами, первым элементом этого дека) или возвращается null , если этот запрос пуст.

PeekFirst()

Извлекает, но не удаляет первый элемент этого дека или возвращается null , если этот дек пустой.

(Унаследовано от IDeque)
PeekLast()

Извлекает, но не удаляет последний элемент этого дека или возвращается null , если этот дек пустой.

(Унаследовано от IDeque)
Poll()

Извлекает и удаляет голову очереди, представленной этим деком (другими словами, первым элементом этого дека) или возвращается null , если этот запрос пуст.

Poll(Int64, TimeUnit)

Извлекает и удаляет головную часть очереди, представленную этим деком (другими словами, первым элементом этого deque), ожидая до указанного времени ожидания при необходимости, чтобы элемент стал доступным.

PollFirst()

Извлекает и удаляет первый элемент этого deque или возвращает null , если этот дек пустой.

(Унаследовано от IDeque)
PollFirst(Int64, TimeUnit)

Извлекает и удаляет первый элемент этого дека, ожидая до указанного времени ожидания, если это необходимо для того, чтобы элемент стал доступным.

PollLast()

Извлекает и удаляет последний элемент этого дека или возвращает null , если этот дек пустой.

(Унаследовано от IDeque)
PollLast(Int64, TimeUnit)

Извлекает и удаляет последний элемент этого декви, ожидая до указанного времени ожидания, если это необходимо для того, чтобы элемент стал доступным.

Pop()

Появляется элемент из стека, представленного этим деком.

(Унаследовано от IDeque)
Push(Object)

Отправляет элемент в стек, представленный этим деком (иными словами, в голове этого дека), если это можно сделать немедленно, не нарушая ограничения емкости, вызывая IllegalStateException , если пробел в настоящее время недоступен.

Put(Object)

Вставляет указанный элемент в очередь, представленную этим деком (другими словами, в хвосте этого deque), ожидая, если необходимо, чтобы пространство стало доступным.

PutFirst(Object)

Вставляет указанный элемент в передней части этого дека, ожидая, если требуется, чтобы пространство стало доступным.

PutLast(Object)

Вставляет указанный элемент в конец этого дека, ожидая, если необходимо, чтобы пространство стало доступным.

RemainingCapacity()

Возвращает количество дополнительных элементов, которые эта очередь может в идеале (в отсутствие ограничений памяти или ресурсов) принимать без блокировки или Integer.MAX_VALUE если нет встроенного ограничения.

(Унаследовано от IBlockingQueue)
Remove()

Извлекает и удаляет голову очереди, представленной этим деком (другими словами, первым элементом этого дека).

Remove(Object)

Удаляет первое вхождение указанного элемента из этого дека.

RemoveAll(ICollection)

Удаляет все элементы этой коллекции, которые также содержатся в указанной коллекции (необязательной операции).

(Унаследовано от ICollection)
RemoveFirst()

Извлекает и удаляет первый элемент этого дека.

(Унаследовано от IDeque)
RemoveFirstOccurrence(Object)

Удаляет первое вхождение указанного элемента из этого дека.

RemoveIf(IPredicate)

Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату.

(Унаследовано от ICollection)
RemoveLast()

Извлекает и удаляет последний элемент этого дека.

(Унаследовано от IDeque)
RemoveLastOccurrence(Object)

Удаляет последнее вхождение указанного элемента из этого дека.

RetainAll(ICollection)

Сохраняет только элементы этой коллекции, содержащиеся в указанной коллекции (необязательной операции).

(Унаследовано от ICollection)
SetJniIdentityHashCode(Int32)

Задайте значение, возвращаемое JniIdentityHashCode.

(Унаследовано от IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

(Унаследовано от IJavaPeerable)
SetPeerReference(JniObjectReference)

Задайте значение, возвращаемое PeerReference.

(Унаследовано от IJavaPeerable)
Size()

Возвращает количество элементов в этом деку.

Spliterator()

Spliterator Создает над элементами, описанными в этом разделеIterable.

(Унаследовано от IIterable)
Take()

Извлекает и удаляет голову очереди, представленной этим деком (другими словами, первым элементом этого деque), ожидая, если это необходимо, пока элемент не станет доступным.

TakeFirst()

Извлекает и удаляет первый элемент этого дека, ожидая, если это необходимо, пока элемент не станет доступным.

TakeLast()

Извлекает и удаляет последний элемент этого дека, ожидая, если это необходимо, пока элемент не станет доступным.

ToArray()

Возвращает массив, содержащий все элементы в этой коллекции.

(Унаследовано от ICollection)
ToArray(IIntFunction)

Возвращает массив, содержащий все элементы в этой коллекции, используя предоставленную generator функцию для выделения возвращаемого массива.

(Унаследовано от ICollection)
ToArray(Object[])

Возвращает массив, содержащий все элементы в этой коллекции; Тип среды выполнения возвращаемого массива — это тип указанного массива.

(Унаследовано от ICollection)
UnregisterFromRuntime()

Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов.

(Унаследовано от IJavaPeerable)

Явные реализации интерфейса

IIterable.Spliterator()

Spliterator Создает элементы в этой коллекции.

(Унаследовано от ICollection)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

GetJniTypeName(IJavaPeerable)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

OfferFirstAsync(IBlockingDeque, Object)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

OfferLastAsync(IBlockingDeque, Object)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

PollFirstAsync(IBlockingDeque, Int64, TimeUnit)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

PollLastAsync(IBlockingDeque, Int64, TimeUnit)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

PutFirstAsync(IBlockingDeque, Object)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

PutLastAsync(IBlockingDeque, Object)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

TakeFirstAsync(IBlockingDeque)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

TakeLastAsync(IBlockingDeque)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

OfferAsync(IBlockingQueue, Object)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

OfferAsync(IBlockingQueue, Object, Int64, TimeUnit)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

PollAsync(IBlockingQueue, Int64, TimeUnit)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

PutAsync(IBlockingQueue, Object)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

TakeAsync(IBlockingQueue)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

ToEnumerable(IIterable)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

ToEnumerable<T>(IIterable)

Кроме Deque того, поддерживается блокировка операций, ожидающих того, что deque станет непустой при получении элемента, и дождитесь того, чтобы пространство стало доступным в deque при хранении элемента.

Применяется к