ConcurrentLinkedQueue Класс

Определение

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

[Android.Runtime.Register("java/util/concurrent/ConcurrentLinkedQueue", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class ConcurrentLinkedQueue : Java.Util.AbstractQueue, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[<Android.Runtime.Register("java/util/concurrent/ConcurrentLinkedQueue", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type ConcurrentLinkedQueue = class
    inherit AbstractQueue
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IQueue
    interface ICollection
    interface IIterable
Наследование
Атрибуты
Реализации

Комментарии

Несвязанная потокобезопасная очередь очереди на основе связанных узлов. Эта очередь заказывает элементы FIFO (первый в первом выходе). >Em <head</em> очереди — это элемент, который находится в очереди дольше всего. >Em <tail</em> очереди — это элемент, который был в очереди кратчайшее время. Новые элементы вставляются в конце очереди, а операции извлечения очереди получают элементы в начале очереди. Это ConcurrentLinkedQueue подходящий выбор, если многие потоки будут совместно использовать доступ к общей коллекции. Как и большинство других параллельных реализаций коллекций, этот класс не позволяет использовать null элементы.

В этой реализации используется эффективный <>алгоритм неблокировки и неблокирования<> на основе алгоритма, описанного в статье Простые, быстрые и практические алгоритмы неблокирующих и блокирующих параллельных очередей Maged M. Michael и Michael L. Scott.

Итераторы слабо согласованы, возвращая элементы, отражающие состояние очереди в определенный момент или после создания итератора. <>Они не< создают и>java.util.ConcurrentModificationExceptionмогут выполняться параллельно с другими операциями. Элементы, содержащиеся в очереди с момента создания итератора, будут возвращены ровно один раз.

Помните, что, в отличие от большинства коллекцийsize, метод является <не<>/em> операцией константного времени. Из-за асинхронной природы этих очередей для определения текущего количества элементов требуется обход элементов, поэтому при изменении этой коллекции во время обхода может сообщаться неточные результаты.

Массовые операции, которые добавляют, удаляют или проверяют несколько элементов, таких как #addAll, #removeIf или #forEach,>< не<> гарантируют атомарное выполнение. Например, при обходе, forEach параллельном с операцией addAll , могут наблюдаться только некоторые из добавленных элементов.

Этот класс и его итератор реализуют все <методы Queue em>optional</em> интерфейсов и Iterator .

Эффекты согласованности памяти. Как и в случае с другими параллельными коллекциями, действия в потоке перед помещением объекта в ConcurrentLinkedQueue<>i происходят после<> доступа или удаления этого элемента в другом потоке.ConcurrentLinkedQueue

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

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

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

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

Конструкторы

ConcurrentLinkedQueue()

Создает объект , ConcurrentLinkedQueue изначально пустой.

ConcurrentLinkedQueue(ICollection)

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

ConcurrentLinkedQueue(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Class

Возвращает класс среды выполнения данного объекта Object.

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

Дескриптор базового экземпляра Android.

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

Добавляемое

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

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

PeerReference

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Add(Object)

Добавляемое

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

Добавляемое

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

Добавляемое

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

Создает и возвращает копию этого объекта.

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

Добавляемое

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

Добавляемое

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

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

(Унаследовано от Object)
Dispose(Boolean)

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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

Извлекает, но не удаляет головку этой очереди.

(Унаследовано от AbstractQueue)
Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

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

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

GetHashCode()

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

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

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

JavaFinalize()

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

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

Пробуждает один поток, ожидающий монитора этого объекта.

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

Пробуждает все потоки, ожидающие на мониторе этого объекта.

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

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

Peek()

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

Poll()

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

Remove()

Извлекает и удаляет головку этой очереди.

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

Добавляемое

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

Добавляемое

(Унаследовано от AbstractCollection)
RemoveIf(IPredicate)

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

RetainAll(ICollection)

Добавляемое

(Унаследовано от AbstractCollection)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

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

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

Spliterator()

Возвращает объект над Spliterator элементами в этой очереди.

ToArray()

Добавляемое

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

Добавляемое

(Унаследовано от AbstractCollection)
ToArray<T>()

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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

Возвращает строковое представление объекта.

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

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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

Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.><

(Унаследовано от Object)
Wait(Int64)

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

(Унаследовано от Object)
Wait(Int64, Int32)

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

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

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

IJavaPeerable.Disposed()

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

GetJniTypeName(IJavaPeerable)

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

ToEnumerable(IIterable)

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

ToEnumerable<T>(IIterable)

Несвязанная потокобезопасная очередь очереди на основе связанных узлов.

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