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, в зависимости от операции), третий блок блокирует текущий поток бесконечно до тех пор, пока операция не сможет успешно завершиться, и четвертые блоки только для заданного максимального ограничения времени, прежде чем отказаться. Эти методы приведены в следующей таблице:
Как и любой 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 |
Возвращает, |
| JniIdentityHashCode |
Возвращает значение |
| JniManagedPeerState |
Состояние управляемого однорангового узла. (Унаследовано от IJavaPeerable) |
| JniObjectReferenceControlBlock |
Кроме |
| 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, Int32) |
Удаляет по крайней мере заданное количество доступных элементов из этой очереди и добавляет их в данную коллекцию. (Унаследовано от IBlockingQueue) |
| DrainTo(ICollection) |
Удаляет все доступные элементы из этой очереди и добавляет их в данную коллекцию. (Унаследовано от IBlockingQueue) |
| Element() |
Извлекает, но не удаляет, голову очереди, представленную этим деком (другими словами, первый элемент этого дека). |
| Equals(Object) |
Сравнивает указанный объект с этой коллекцией для равенства. (Унаследовано от ICollection) |
| Finalized() |
Вызывается при завершении экземпляра. (Унаследовано от IJavaPeerable) |
| ForEach(IConsumer) |
Выполняет заданное действие для каждого элемента |
| GetFirst() |
Возвращает первый элемент этой коллекции. (Унаследовано от ISequencedCollection) |
| GetHashCode() |
Возвращает хэш-значение кода для этой коллекции. (Унаследовано от ICollection) |
| GetLast() |
Возвращает последний элемент этой коллекции. (Унаследовано от ISequencedCollection) |
| Iterator() |
Возвращает итератор над элементами в этой деку в правильной последовательности. |
| Offer(Object, Int64, TimeUnit) |
Вставляет указанный элемент в очередь, представленную этим деком (другими словами, в хвосте этого дека), ожидая до указанного времени ожидания, если необходимо, чтобы пространство стало доступным. |
| Offer(Object) |
Вставляет указанный элемент в очередь, представленную этим деком (иными словами, в хвосте этого дека), если это можно сделать немедленно, не нарушая ограничения емкости, возвращая |
| OfferFirst(Object, Int64, TimeUnit) |
Вставляет указанный элемент перед этим деком, ожидая до указанного времени ожидания при необходимости, чтобы пространство стало доступным. |
| OfferFirst(Object) |
Вставляет указанный элемент перед этим деком, если это можно сделать немедленно, не нарушая ограничения емкости, возвращая |
| OfferLast(Object, Int64, TimeUnit) |
Вставляет указанный элемент в конце этого события, ожидая до указанного времени ожидания при необходимости, чтобы пространство стало доступным. |
| OfferLast(Object) |
Вставляет указанный элемент в конце этого дека, если это возможно, немедленно не нарушая ограничения емкости, возвращая |
| Peek() |
Извлекает, но не удаляет, голову очереди, представленную этим деком (другими словами, первым элементом этого дека) или возвращается |
| PeekFirst() |
Извлекает, но не удаляет первый элемент этого дека или возвращается |
| PeekLast() |
Извлекает, но не удаляет последний элемент этого дека или возвращается |
| Poll() |
Извлекает и удаляет голову очереди, представленной этим деком (другими словами, первым элементом этого дека) или возвращается |
| Poll(Int64, TimeUnit) |
Извлекает и удаляет голову очереди, представленной этим деком (другими словами, первым элементом этого деque), ожидая до указанного времени ожидания при необходимости, чтобы элемент стал доступным. |
| 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() |
Удаляет и возвращает первый элемент этой коллекции (необязательной операции). (Унаследовано от ISequencedCollection) |
| RemoveFirstOccurrence(Object) |
Удаляет первое вхождение указанного элемента из этого дека. |
| RemoveIf(IPredicate) |
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату (необязательной операции). (Унаследовано от ICollection) |
| RemoveLast() |
Удаляет и возвращает последний элемент этой коллекции (необязательной операции). (Унаследовано от ISequencedCollection) |
| RemoveLastOccurrence(Object) |
Удаляет последнее вхождение указанного элемента из этого дека. |
| RetainAll(ICollection) |
Сохраняет только элементы этой коллекции, содержащиеся в указанной коллекции (необязательной операции). (Унаследовано от ICollection) |
| Reversed() |
Возвращает обратное упорядоченное представление этой коллекции. (Унаследовано от ISequencedCollection) |
| 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() |
|
| ISequencedCollection.Reversed() |
Добавление (Унаследовано от IDeque) |
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Кроме |
| OfferAsync(IBlockingQueue, Object, Int64, TimeUnit) |
Кроме |
| OfferAsync(IBlockingQueue, Object) |
Кроме |
| OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit) |
Кроме |
| OfferFirstAsync(IBlockingDeque, Object) |
Кроме |
| OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit) |
Кроме |
| OfferLastAsync(IBlockingDeque, Object) |
Кроме |
| PollAsync(IBlockingQueue, Int64, TimeUnit) |
Кроме |
| PollFirstAsync(IBlockingDeque, Int64, TimeUnit) |
Кроме |
| PollLastAsync(IBlockingDeque, Int64, TimeUnit) |
Кроме |
| PutAsync(IBlockingQueue, Object) |
Кроме |
| PutFirstAsync(IBlockingDeque, Object) |
Кроме |
| PutLastAsync(IBlockingDeque, Object) |
Кроме |
| TakeAsync(IBlockingQueue) |
Кроме |
| TakeFirstAsync(IBlockingDeque) |
Кроме |
| TakeLastAsync(IBlockingDeque) |
Кроме |
| ToEnumerable(IIterable) |
Возвращает итерацию IEnumerable по JavaIIterable, позволяя |
| ToEnumerable<T>(IIterable) |
Возвращает итерацию IEnumerable<T> по JavaIIterable, маршалинг каждого элемента |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |