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(ICollection) |
Создает объект , |
ConcurrentLinkedQueue(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
Class |
Возвращает класс среды выполнения данного объекта |
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() |
Извлекает, но не удаляет головку этой очереди или возвращает |
Poll() |
Извлекает и удаляет головку этой очереди или возвращает |
Remove() |
Извлекает и удаляет головку этой очереди. (Унаследовано от AbstractQueue) |
Remove(Object) |
Добавляемое (Унаследовано от AbstractCollection) |
RemoveAll(ICollection) |
Добавляемое (Унаследовано от AbstractCollection) |
RemoveIf(IPredicate) |
Несвязанная потокобезопасная очередь очереди на основе связанных узлов. |
RetainAll(ICollection) |
Добавляемое (Унаследовано от AbstractCollection) |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
Size() |
Возвращает количество элементов в этой очереди. |
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) |
Несвязанная потокобезопасная очередь очереди на основе связанных узлов. |