SynchronousQueue 类

定义

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

[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
继承
属性
实现

注解

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。 同步队列没有任何内部容量,甚至没有一个内部容量。 不能 peek 处于同步队列,因为只有在尝试删除某个元素时才存在;除非另一个线程尝试删除它,否则不能插入元素(使用任何方法);不能循环访问,因为没有任何迭代内容。 <队列的 em>head</em> 是第一个排队插入线程尝试添加到队列的元素;如果没有此类排队线程,则没有任何元素可用于删除,并且poll()将返回null。 对于其他 Collection 方法(例如 contains),一个 SynchronousQueue 充当空集合。 此队列不允许 null 元素。

同步队列类似于 CSP 和 Ada 中使用的会合通道。 它们非常适合交接设计,其中一个线程中运行的对象必须与在另一个线程中运行的对象同步,以便向其提供一些信息、事件或任务。

此类支持用于订购等待生成者和使用者线程的可选公平性策略。 默认情况下,不保证此排序。 但是,使用公平性构造的队列设置为 true 按 FIFO 顺序授予线程访问权限。

此类及其迭代器实现和接口的所有 <em>可选</em> 方法CollectionIterator

此类是 Java 集合框架的成员

在 1.5 中添加。

适用于 . 的 java.util.concurrent.SynchronousQueueJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

SynchronousQueue()

使用非air 访问策略创建一个 SynchronousQueue

SynchronousQueue(Boolean)

使用指定的公平性策略创建一个 SynchronousQueue

SynchronousQueue(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
IsEmpty

要添加

(继承自 AbstractCollection)
JniIdentityHashCode

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
JniPeerMembers

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

PeerReference

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

方法

Add(Object)

要添加

(继承自 AbstractCollection)
AddAll(ICollection)

要添加

(继承自 AbstractCollection)
Clear()

要添加

(继承自 AbstractCollection)
Clone()

创建并返回此对象的副本。

(继承自 Object)
Contains(Object)

要添加

(继承自 AbstractCollection)
ContainsAll(ICollection)

要添加

(继承自 AbstractCollection)
Dispose()

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
Dispose(Boolean)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
DrainTo(ICollection)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

DrainTo(ICollection, Int32)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

Element()

检索此队列的头,但不删除。

(继承自 AbstractQueue)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
Iterator()

返回一个始终返回falsehasNext空迭代器。

JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Offer(Object)

如果另一个线程正在等待接收指定元素,请将指定的元素插入此队列。

Offer(Object, Int64, TimeUnit)

将指定的元素插入到此队列中,如有必要,等待另一个线程接收该元素的指定等待时间。

Peek()

始终返回 null

Poll()

如果另一个线程当前使元素可用,则检索并删除此队列的头。

Poll(Int64, TimeUnit)

检索并删除此队列的头,如有必要,等待指定的等待时间,让另一个线程插入它。

Put(Object)

将指定的元素添加到此队列,如有必要,等待另一个线程接收它。

RemainingCapacity()

始终返回零。

Remove()

检索并删除此队列的头。

(继承自 AbstractQueue)
Remove(Object)

要添加

(继承自 AbstractCollection)
RemoveAll(ICollection)

要添加

(继承自 AbstractCollection)
RetainAll(ICollection)

要添加

(继承自 AbstractCollection)
SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
Size()

始终返回零。

Spliterator()

返回一个空拆分器,在该拆分器中调用始终 Spliterator#trySplit() trySplit 返回 null

Take()

检索并删除此队列的头,如有必要,等待另一个线程插入该队列。

ToArray()

要添加

(继承自 AbstractCollection)
ToArray(Object[])

要添加

(继承自 AbstractCollection)
ToArray<T>()

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<><

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
IJavaPeerable.Finalized()

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

GetJniTypeName(IJavaPeerable)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

OfferAsync(IBlockingQueue, Object)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

OfferAsync(IBlockingQueue, Object, Int64, TimeUnit)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

PollAsync(IBlockingQueue, Int64, TimeUnit)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

PutAsync(IBlockingQueue, Object)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

TakeAsync(IBlockingQueue)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

ToEnumerable(IIterable)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

ToEnumerable<T>(IIterable)

一个 BlockingQueue 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。

适用于