Поделиться через


SynchronousQueue Класс

Определение

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

Комментарии

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот. Синхронная очередь не имеет внутренней емкости, а не емкости одного. Вы не можете в синхронной очереди, так как элемент присутствует только при попытке удалить его; вы не можете peek вставить элемент (с помощью любого метода), если другой поток не пытается удалить его; вы не можете выполнить итерацию, так как нет ничего для итерации. Em <head/em>> очереди — это элемент, который первый поток вставки в очередь пытается добавить в очередь; если такой поток не существует, элемент недоступен для удаления и poll() возвращаетсяnull.< В целях других Collection методов (например contains, в SynchronousQueue качестве пустой коллекции действует пустая коллекция). Эта очередь не разрешает null элементы.

Синхронные очереди похожи на каналы, используемые в CSP и Ada. Они хорошо подходят для макетов передачи, в которых объект, работающий в одном потоке, должен синхронизироваться с объектом, работающим в другом потоке, чтобы передать ему некоторую информацию, событие или задачу.

Этот класс поддерживает необязательную политику справедливости для упорядочивания потоков производителя и потребителей. По умолчанию этот порядок не гарантируется. Однако очередь, созданная с справедливостью true , обеспечивает доступ к потокам в порядке FIFO.

Этот класс и его итератор реализуют все <методы Collection em>необязательных</em> интерфейсов и Iterator интерфейсов.

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

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

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

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

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

SynchronousQueue()

SynchronousQueue Создает политику доступа nonfair.

SynchronousQueue(Boolean)

Создает указанную SynchronousQueue политику справедливости.

SynchronousQueue(IntPtr, JniHandleOwnership)

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

Свойства

Class

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

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

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

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

Добавление

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

PeerReference

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

(Унаследовано от 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()

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

DrainTo(ICollection, Int32)

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

Element()

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

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

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

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

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

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

Возвращает пустой итератор, в котором hasNext всегда возвращается false.

JavaFinalize()

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

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

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

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

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

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

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

Offer(Object, Int64, TimeUnit)

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

Peek()

Всегда возвращает значение null.

Poll()

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

Poll(Int64, TimeUnit)

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

Put(Object)

Добавляет указанный элемент в эту очередь, ожидая получения другого потока.

RemainingCapacity()

Всегда возвращает значение 0.

Remove()

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

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

Добавление

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

Добавление

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

Добавление

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

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

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

Всегда возвращает значение 0.

Spliterator()

Возвращает пустой разбиение, в котором вызовы всегда Spliterator#trySplit() trySplit возвращаются null.

Take()

Извлекает и удаляет голову этой очереди, ожидая, если это необходимо для вставки другого потока.

ToArray()

Добавление

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

Добавление

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

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

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>.

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

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

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

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

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

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

IJavaPeerable.Disposed()

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

GetJniTypeName(IJavaPeerable)

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

OfferAsync(IBlockingQueue, Object)

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

OfferAsync(IBlockingQueue, Object, Int64, TimeUnit)

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

PollAsync(IBlockingQueue, Int64, TimeUnit)

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

PutAsync(IBlockingQueue, Object)

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

TakeAsync(IBlockingQueue)

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

ToEnumerable(IIterable)

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

ToEnumerable<T>(IIterable)

Очередь блокировки БлокироватьQueue, в которой каждая операция вставки должна ожидать соответствующей операции удаления другим потоком и наоборот.

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