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 |
Возвращает, если этот |
JniIdentityHashCode |
Возвращает значение |
JniManagedPeerState |
Состояние управляемого однорангового узла. (Унаследовано от IJavaPeerable) |
JniPeerMembers |
Поддержка доступа к членам и вызовов. (Унаследовано от IJavaPeerable) |
Last |
Извлекает, но не удаляет последний элемент этого дека. (Унаследовано от IDeque) |
PeerReference |
JniObjectReference Возвращает экземпляр объекта Java в оболочке. (Унаследовано от IJavaPeerable) |
Методы
Add(Object) |
Вставляет указанный элемент в очередь, представленную этим деком (иными словами, в хвосте этого дека), если это можно сделать немедленно, не нарушая ограничения емкости, возвращая |
AddAll(ICollection) |
Добавляет все элементы указанной коллекции в эту коллекцию (необязательно). (Унаследовано от ICollection) |
AddFirst(Object) |
Вставляет указанный элемент перед этим деком, если это можно сделать немедленно, не нарушая ограничения емкости, вызывая |
AddLast(Object) |
Вставляет указанный элемент в конец этого дека, если это можно сделать немедленно, не нарушая ограничения емкости, вызывая |
Clear() |
Удаляет все элементы из этой коллекции (необязательной операции). (Унаследовано от ICollection) |
Contains(Object) |
Возвращает, |
ContainsAll(ICollection) |
Возвращает, |
DescendingIterator() |
Возвращает итератор над элементами этого дека в обратном последовательном порядке. (Унаследовано от IDeque) |
Disposed() |
Вызывается при удалении экземпляра. (Унаследовано от IJavaPeerable) |
DisposeUnlessReferenced() |
Если нет невыполненных ссылок на этот экземпляр, то вызывается |
DrainTo(ICollection) |
Удаляет все доступные элементы из этой очереди и добавляет их в данную коллекцию. (Унаследовано от IBlockingQueue) |
DrainTo(ICollection, Int32) |
Удаляет по крайней мере заданное количество доступных элементов из этой очереди и добавляет их в данную коллекцию. (Унаследовано от IBlockingQueue) |
Element() |
Извлекает, но не удаляет, голову очереди, представленную этим деком (другими словами, первый элемент этого дека). |
Equals(Object) |
Сравнивает указанный объект с этой коллекцией для равенства. (Унаследовано от ICollection) |
Finalized() |
Вызывается при завершении экземпляра. (Унаследовано от IJavaPeerable) |
ForEach(IConsumer) |
Выполняет заданное действие для каждого элемента |
GetHashCode() |
Возвращает хэш-значение кода для этой коллекции. (Унаследовано от ICollection) |
Iterator() |
Возвращает итератор над элементами в этой деку в правильной последовательности. |
Offer(Object) |
Вставляет указанный элемент в очередь, представленную этим деком (иными словами, в хвосте этого дека), если это можно сделать немедленно, не нарушая ограничения емкости, возвращая |
Offer(Object, Int64, TimeUnit) |
Вставляет указанный элемент в очередь, представленную этим деком (другими словами, в хвосте этого дека), ожидая до указанного времени ожидания, если необходимо, чтобы пространство стало доступным. |
OfferFirst(Object) |
Вставляет указанный элемент перед этим деком, если это можно сделать немедленно, не нарушая ограничения емкости, возвращая |
OfferFirst(Object, Int64, TimeUnit) |
Вставляет указанный элемент перед этим деком, ожидая до указанного времени ожидания при необходимости, чтобы пространство стало доступным. |
OfferLast(Object) |
Вставляет указанный элемент в конец этого декада, если это возможно, немедленно не нарушая ограничения емкости, возвращая |
OfferLast(Object, Int64, TimeUnit) |
Вставляет указанный элемент в конец этого события, ожидая до указанного времени ожидания при необходимости, чтобы пространство стало доступным. |
Peek() |
Извлекает, но не удаляет, голову очереди, представленную этим деком (другими словами, первым элементом этого дека) или возвращается |
PeekFirst() |
Извлекает, но не удаляет первый элемент этого дека или возвращается |
PeekLast() |
Извлекает, но не удаляет последний элемент этого дека или возвращается |
Poll() |
Извлекает и удаляет голову очереди, представленной этим деком (другими словами, первым элементом этого дека) или возвращается |
Poll(Int64, TimeUnit) |
Извлекает и удаляет головную часть очереди, представленную этим деком (другими словами, первым элементом этого deque), ожидая до указанного времени ожидания при необходимости, чтобы элемент стал доступным. |
PollFirst() |
Извлекает и удаляет первый элемент этого deque или возвращает |
PollFirst(Int64, TimeUnit) |
Извлекает и удаляет первый элемент этого дека, ожидая до указанного времени ожидания, если это необходимо для того, чтобы элемент стал доступным. |
PollLast() |
Извлекает и удаляет последний элемент этого дека или возвращает |
PollLast(Int64, TimeUnit) |
Извлекает и удаляет последний элемент этого декви, ожидая до указанного времени ожидания, если это необходимо для того, чтобы элемент стал доступным. |
Pop() |
Появляется элемент из стека, представленного этим деком. (Унаследовано от IDeque) |
Push(Object) |
Отправляет элемент в стек, представленный этим деком (иными словами, в голове этого дека), если это можно сделать немедленно, не нарушая ограничения емкости, вызывая |
Put(Object) |
Вставляет указанный элемент в очередь, представленную этим деком (другими словами, в хвосте этого deque), ожидая, если необходимо, чтобы пространство стало доступным. |
PutFirst(Object) |
Вставляет указанный элемент в передней части этого дека, ожидая, если требуется, чтобы пространство стало доступным. |
PutLast(Object) |
Вставляет указанный элемент в конец этого дека, ожидая, если необходимо, чтобы пространство стало доступным. |
RemainingCapacity() |
Возвращает количество дополнительных элементов, которые эта очередь может в идеале (в отсутствие ограничений памяти или ресурсов) принимать без блокировки или |
Remove() |
Извлекает и удаляет голову очереди, представленной этим деком (другими словами, первым элементом этого дека). |
Remove(Object) |
Удаляет первое вхождение указанного элемента из этого дека. |
RemoveAll(ICollection) |
Удаляет все элементы этой коллекции, которые также содержатся в указанной коллекции (необязательной операции). (Унаследовано от ICollection) |
RemoveFirst() |
Извлекает и удаляет первый элемент этого дека. (Унаследовано от IDeque) |
RemoveFirstOccurrence(Object) |
Удаляет первое вхождение указанного элемента из этого дека. |
RemoveIf(IPredicate) |
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату. (Унаследовано от ICollection) |
RemoveLast() |
Извлекает и удаляет последний элемент этого дека. (Унаследовано от IDeque) |
RemoveLastOccurrence(Object) |
Удаляет последнее вхождение указанного элемента из этого дека. |
RetainAll(ICollection) |
Сохраняет только элементы этой коллекции, содержащиеся в указанной коллекции (необязательной операции). (Унаследовано от ICollection) |
SetJniIdentityHashCode(Int32) |
Задайте значение, возвращаемое |
SetJniManagedPeerState(JniManagedPeerStates) |
Кроме |
SetPeerReference(JniObjectReference) |
Задайте значение, возвращаемое |
Size() |
Возвращает количество элементов в этом деку. |
Spliterator() |
|
Take() |
Извлекает и удаляет голову очереди, представленной этим деком (другими словами, первым элементом этого деque), ожидая, если это необходимо, пока элемент не станет доступным. |
TakeFirst() |
Извлекает и удаляет первый элемент этого дека, ожидая, если это необходимо, пока элемент не станет доступным. |
TakeLast() |
Извлекает и удаляет последний элемент этого дека, ожидая, если это необходимо, пока элемент не станет доступным. |
ToArray() |
Возвращает массив, содержащий все элементы в этой коллекции. (Унаследовано от ICollection) |
ToArray(IIntFunction) |
Возвращает массив, содержащий все элементы в этой коллекции, используя предоставленную |
ToArray(Object[]) |
Возвращает массив, содержащий все элементы в этой коллекции; Тип среды выполнения возвращаемого массива — это тип указанного массива. (Унаследовано от ICollection) |
UnregisterFromRuntime() |
Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов. (Унаследовано от IJavaPeerable) |
Явные реализации интерфейса
IIterable.Spliterator() |
|
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Кроме |
GetJniTypeName(IJavaPeerable) |
Кроме |
OfferFirstAsync(IBlockingDeque, Object) |
Кроме |
OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit) |
Кроме |
OfferLastAsync(IBlockingDeque, Object) |
Кроме |
OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit) |
Кроме |
PollFirstAsync(IBlockingDeque, Int64, TimeUnit) |
Кроме |
PollLastAsync(IBlockingDeque, Int64, TimeUnit) |
Кроме |
PutFirstAsync(IBlockingDeque, Object) |
Кроме |
PutLastAsync(IBlockingDeque, Object) |
Кроме |
TakeFirstAsync(IBlockingDeque) |
Кроме |
TakeLastAsync(IBlockingDeque) |
Кроме |
OfferAsync(IBlockingQueue, Object) |
Кроме |
OfferAsync(IBlockingQueue, Object, Int64, TimeUnit) |
Кроме |
PollAsync(IBlockingQueue, Int64, TimeUnit) |
Кроме |
PutAsync(IBlockingQueue, Object) |
Кроме |
TakeAsync(IBlockingQueue) |
Кроме |
ToEnumerable(IIterable) |
Кроме |
ToEnumerable<T>(IIterable) |
Кроме |