ConcurrentLinkedQueue 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
基于链接节点的无限线程安全队列。
[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 的简单、快速和实用的非阻塞和阻塞并发队列算法中所述的高效 <>em 非阻塞</>em 算法。
迭代器一 致性较弱,返回的元素反映迭代器创建时或创建后队列的状态。 它们不会<>><引发 java.util.ConcurrentModificationException
,并且可能会与其他操作同时继续。 自创建迭代器以来,队列中包含的元素将只返回一次。
请注意,与大多数集合中不同的是, size
方法是<>一<>个常量时间操作。 由于这些队列的异步性质,确定当前元素数需要遍历元素,因此,如果在遍历过程中修改此集合,则可能会报告不准确的结果。
添加、删除或检查多个元素(如 #addAll
、 #removeIf
或 #forEach
><)的批量操作不<>保证以原子方式执行。 例如, forEach
与 addAll
操作并发的遍历可能只观察到某些添加的元素。
此类及其迭代器实现 和 接口的所有 <em>optional</em> 方法Queue
。Iterator
内存一致性影响:与其他并发集合一样,在将对象放入 i>happen-before</i> 操作之后,线程中的操作会从ConcurrentLinkedQueue
另一个ConcurrentLinkedQueue
<线程的 中访问或删除该元素。
此类是 Java 集合框架的成员。
在 1.5 中添加。
的 java.util.concurrent.ConcurrentLinkedQueue
Java 文档。
此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。
构造函数
ConcurrentLinkedQueue() |
|
ConcurrentLinkedQueue(ICollection) |
创建一个 |
ConcurrentLinkedQueue(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
Class |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
IsEmpty |
要添加 (继承自 AbstractCollection) |
JniIdentityHashCode |
基于链接节点的无限线程安全队列。 (继承自 Object) |
JniPeerMembers |
基于链接节点的无限线程安全队列。 |
PeerReference |
基于链接节点的无限线程安全队列。 (继承自 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() |
基于链接节点的无限线程安全队列。 (继承自 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() |
导致当前线程等待,直到它被唤醒,通常是通过 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() |
基于链接节点的无限线程安全队列。 (继承自 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) |
基于链接节点的无限线程安全队列。 |