Язык

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

Комментарии

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

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

table class="plain"caption Summary of LockDeque methods/captiontr thid="First" colspan="5" First Element (Head)/th/tr trtd/td th id="FThrow" style="font-weight:normal; font-style: italic"Throws exception/thid="FValue" style="font-weight:normal; font-style: itic"Special value/th id="FBlock" style="font-weight: нормальный; стиль шрифта: курсив"Blocks/th thid="FTimes" style="font-weight:normal; font-style: italic"Times out/th/tr tr thid="FInsert" style="text-align:left"Insert/thtd headers="First FInsert FThrow"/tdtd headers="First FInsert FValue"/td td headers="First FInsert FBlock"/tdtd headers="First Fd headers="First FD FInsert FTimes"/td/tr trthid="FRemove" style="text-align:left"Remove/thtd headers="First FRemove FThrow"/td tdheaders="First FRemove FValue"/td td headers="First FRemove FBlock"/tdtd headers="First FRemove FTimes"/td/tr trthid="FExamine" style=" text-align:left"Examine/thtd headers="First FExamine FThrow"/tdtd headers="First FExamine FValue"/tdtd headers="First FExamine FBlock" style="font-style:< курсив"not applicable/td tdheaders="First FExamine FTimes" style="font-style:italic"notable/td/tr trthid="Last" colspan="5" Последний элемент (Tail)/th/tr trtd/td th id="LThrow" style="font-weight:normal; font-style: italic"Throws exception/thid="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 trthid="LInsert" style="text-align:left"Insert/th td headers="Last LInsert LThrow"/tdtd headers="Last LInsert LValue"/td td headers="Last LInsert LBlock"/tdtd headers="Last LInsert LTimes"/td lTimes"/td/trth id="LRemove" style="text-align:left"Remove/thtd headers="Last LRemove LThrow"/tdtd headers="Last LRemove LValue"/td tdheaders="Last LRemove LBlock"/td tdheaders="Last LRemove LTimes"/td/tr trthid="LExamine" style="text-align:left"Examine/thtd headers="Last LExamine LThrow"/tdtd headers="Last LExamine LValue"/tdtd headers="Last LExamine LBlock" style="font-style:italic"not applicable/td tdheaders="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/>BlockingQueueth id="BDeque"< Equivalent > Method<>BlockingDeque</th/tr><><th id="Insert">< 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"/>#remove() remove()th td headers="Remove BDeque 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.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Свойства

Имя. Описание
First

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

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

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

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

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

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

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

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

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

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

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

(Унаследовано от 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, Int32)

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

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

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

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

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

Equals(Object)

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

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

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

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

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

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

Возвращает первый элемент этой коллекции.

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

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

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

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

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

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

Offer(Object, Int64, TimeUnit)

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

Offer(Object)

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

OfferFirst(Object, Int64, TimeUnit)

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

OfferFirst(Object)

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

OfferLast(Object, Int64, TimeUnit)

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

OfferLast(Object)

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

Peek()

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

PeekFirst()

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

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

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

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

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

Poll(Int64, TimeUnit)

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

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()

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

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

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

RemoveIf(IPredicate)

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

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

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

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

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

RetainAll(ICollection)

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

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

Возвращает обратное упорядоченное представление этой коллекции.

(Унаследовано от ISequencedCollection)
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)
ISequencedCollection.Reversed()

Добавление

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

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

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

OfferAsync(IBlockingQueue, Object, Int64, TimeUnit)

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

OfferAsync(IBlockingQueue, Object)

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

OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit)

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

OfferFirstAsync(IBlockingDeque, Object)

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

OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit)

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

OfferLastAsync(IBlockingDeque, Object)

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

PollAsync(IBlockingQueue, Int64, TimeUnit)

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

PollFirstAsync(IBlockingDeque, Int64, TimeUnit)

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

PollLastAsync(IBlockingDeque, Int64, TimeUnit)

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

PutAsync(IBlockingQueue, Object)

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

PutFirstAsync(IBlockingDeque, Object)

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

PutLastAsync(IBlockingDeque, Object)

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

TakeAsync(IBlockingQueue)

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

TakeFirstAsync(IBlockingDeque)

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

TakeLastAsync(IBlockingDeque)

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

ToEnumerable(IIterable)

Возвращает итерацию IEnumerable по JavaIIterable, позволяя foreach использовать LINQ с типами коллекций Java. Каждый элемент маршалируется из своего Java экземпляра в соответствующий управляемый тип.

ToEnumerable<T>(IIterable)

Возвращает итерацию IEnumerable<T> по JavaIIterable, маршалинг каждого элемента Tв . Это позволяет foreach использовать LINQ с типами коллекций Java.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

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