PriorityBlockingQueue Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.
[Android.Runtime.Register("java/util/concurrent/PriorityBlockingQueue", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class PriorityBlockingQueue : Java.Util.AbstractQueue, IDisposable, Java.IO.ISerializable, Java.Util.Concurrent.IBlockingQueue
[<Android.Runtime.Register("java/util/concurrent/PriorityBlockingQueue", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type PriorityBlockingQueue = class
inherit AbstractQueue
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IBlockingQueue
interface IQueue
interface ICollection
interface IIterable
- Наследование
- Атрибуты
- Реализации
Комментарии
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения. Хотя эта очередь логически не связана, попытки добавления могут завершиться ошибкой из-за нехватки ресурсов (вызывая OutOfMemoryError). Этот класс не разрешает null элементы. Очередь приоритетов, зависяющая от сравнимого естественного порядка, также не позволяет вставлять несоверяемые объекты (делая это в ClassCastExceptionрезультате).
Этот класс и его итератор реализуют все <методы > em<необязательных>/emCollection интерфейсов и Iterator интерфейсов. Итератор, предоставленный в методе#iterator(), и сплитатор, предоставленный в методе#spliterator(), не<></em> гарантирует обход элементов PriorityBlockingQueue в любом определенном порядке. Если вам нужен упорядоченный обход, рассмотрите возможность использования Arrays.sort(pq.toArray()). Кроме того, метод drainTo можно использовать для <>удаления< или em> некоторых или всех элементов в порядке приоритета и размещения их в другой коллекции.
Операции с этим классом не гарантируют порядок элементов с равным приоритетом. Если необходимо применить упорядочение, можно определить пользовательские классы или компраторы, использующие вторичный ключ для разрыва связей в значениях первичного приоритета. Например, вот класс, который применяет первое в первую очередь разбиение связи к сопоставимым элементам. Чтобы использовать его, вы вставляете new FIFOEntry(anEntry) вместо обычного объекта записи.
{@code
class FIFOEntry<E extends Comparable<? super E>>
implements Comparable<FIFOEntry<E>> {
static final AtomicLong seq = new AtomicLong();
final long seqNum;
final E entry;
public FIFOEntry(E entry) {
seqNum = seq.getAndIncrement();
this.entry = entry;
}
public E getEntry() { return entry; }
public int compareTo(FIFOEntry<E> other) {
int res = entry.compareTo(other.entry);
if (res == 0 && other.entry != this.entry)
res = (seqNum < other.seqNum ? -1 : 1);
return res;
}
}}
Этот класс является членом Платформы коллекций Java.
Добавлено в версии 1.5.
Java документации по java.util.concurrent.PriorityBlockingQueue.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя. | Описание |
|---|---|
| PriorityBlockingQueue() |
Создает начальную |
| PriorityBlockingQueue(ICollection) |
|
| PriorityBlockingQueue(Int32, IComparator) |
|
| PriorityBlockingQueue(Int32) |
|
| PriorityBlockingQueue(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
| Имя. | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| IsEmpty |
Добавление (Унаследовано от AbstractCollection) |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| JniPeerMembers |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Имя. | Описание |
|---|---|
| Add(Object) |
Добавление (Унаследовано от AbstractCollection) |
| AddAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
| Clear() |
Добавление (Унаследовано от AbstractCollection) |
| Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
| Comparator() |
Возвращает компратор, используемый для упорядочивания элементов в этой очереди, или |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| Contains(Object) |
Добавление (Унаследовано от AbstractCollection) |
| ContainsAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| DrainTo(ICollection, Int32) |
Удаляет по крайней мере заданное количество доступных элементов из этой очереди и добавляет их в данную коллекцию. |
| DrainTo(ICollection) |
Удаляет все доступные элементы из этой очереди и добавляет их в данную коллекцию. |
| Element() |
Извлекает, но не удаляет голову этой очереди. (Унаследовано от AbstractQueue) |
| Equals(Object) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| ForEach(IConsumer) |
Выполняет заданное действие для каждого элемента итерабельного до тех пор, пока все элементы не будут обработаны или действие создает исключение. |
| GetHashCode() |
Возвращает хэш-значение кода для объекта. (Унаследовано от Object) |
| Iterator() |
Возвращает итератор по элементам в этой очереди. |
| JavaFinalize() |
Устаревшие.
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Notify() |
Просыпается один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| Offer(Object, Int64, TimeUnit) |
Вставляет указанный элемент в эту очередь приоритета. |
| Offer(Object) |
Вставляет указанный элемент в эту очередь приоритета. |
| Peek() |
Извлекает, но не удаляет, голову этой очереди или возвращает |
| Poll() |
Извлекает и удаляет голову этой очереди или возвращает |
| Poll(Int64, TimeUnit) |
Извлекает и удаляет голову этой очереди, ожидая до указанного времени ожидания, если необходимо, чтобы элемент стал доступным. |
| Put(Object) |
Вставляет указанный элемент в эту очередь приоритета. |
| RemainingCapacity() |
Всегда возвращается |
| Remove() |
Извлекает и удаляет голову этой очереди. (Унаследовано от AbstractQueue) |
| Remove(Object) |
Добавление (Унаследовано от AbstractCollection) |
| RemoveAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
| RemoveIf(IPredicate) |
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату. |
| RetainAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| Size() |
Возвращает количество объектов, содержащихся в нем |
| Spliterator() |
|
| Take() |
Извлекает и удаляет голову этой очереди, ожидая, если это необходимо, пока элемент не станет доступным. |
| ToArray() |
Добавление (Унаследовано от AbstractCollection) |
| ToArray(Object[]) |
Добавление (Унаследовано от AbstractCollection) |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.> (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя. | Описание |
|---|---|
| IJavaPeerable.Disposed() |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| IJavaPeerable.Finalized() |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| IJavaPeerable.JniObjectReferenceControlBlock |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| IJavaPeerable.UnregisterFromRuntime() |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| OfferAsync(IBlockingQueue, Object, Int64, TimeUnit) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| OfferAsync(IBlockingQueue, Object) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| PollAsync(IBlockingQueue, Int64, TimeUnit) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| PutAsync(IBlockingQueue, Object) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| TakeAsync(IBlockingQueue) |
Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс |
| ToEnumerable(IIterable) |
Возвращает итерацию IEnumerable по JavaIIterable, позволяя |
| ToEnumerable<T>(IIterable) |
Возвращает итерацию IEnumerable<T> по JavaIIterable, маршалинг каждого элемента |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |