SynchronousQueue 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
一个 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> 方法Collection
。Iterator
此类是 Java 集合框架的成员。
在 1.5 中添加。
适用于 . 的 java.util.concurrent.SynchronousQueue
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
SynchronousQueue() |
使用非air 访问策略创建一个 |
SynchronousQueue(Boolean) |
使用指定的公平性策略创建一个 |
SynchronousQueue(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
Class |
返回此 |
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() |
返回一个始终返回 |
JavaFinalize() |
当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。 (继承自 Object) |
Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
Offer(Object) |
如果另一个线程正在等待接收指定元素,请将指定的元素插入此队列。 |
Offer(Object, Int64, TimeUnit) |
将指定的元素插入到此队列中,如有必要,等待另一个线程接收该元素的指定等待时间。 |
Peek() |
始终返回 |
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() |
返回一个空拆分器,在该拆分器中调用始终 |
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 阻止队列,其中每个插入操作必须等待另一个线程对应的删除操作,反之亦然。 |