Share via


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 的简单、快速和实用的非阻塞和阻塞并发队列算法中所述的高效 <>em 非阻塞</>em 算法。

迭代器一 致性较弱,返回的元素反映迭代器创建时或创建后队列的状态。 它们不会<>><引发 java.util.ConcurrentModificationException,并且可能会与其他操作同时继续。 自创建迭代器以来,队列中包含的元素将只返回一次。

请注意,与大多数集合中不同的是, size 方法是<>一<>个常量时间操作。 由于这些队列的异步性质,确定当前元素数需要遍历元素,因此,如果在遍历过程中修改此集合,则可能会报告不准确的结果。

添加、删除或检查多个元素(如 #addAll#removeIf#forEach><)的批量操作不<>保证以原子方式执行。 例如, forEachaddAll 操作并发的遍历可能只观察到某些添加的元素。

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

内存一致性影响:与其他并发集合一样,在将对象放入 i>happen-before</i> 操作之后,线程中的操作会从ConcurrentLinkedQueue另一个ConcurrentLinkedQueue<线程的 中访问或删除该元素。

此类是 Java 集合框架的成员。

在 1.5 中添加。

java.util.concurrent.ConcurrentLinkedQueueJava 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

构造函数

ConcurrentLinkedQueue()

ConcurrentLinkedQueue创建最初为空的 。

ConcurrentLinkedQueue(ICollection)

创建一个 ConcurrentLinkedQueue 最初包含给定集合的元素的 ,并按集合迭代器的遍历顺序添加。

ConcurrentLinkedQueue(IntPtr, JniHandleOwnership)

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

属性

Class

返回此 Object的运行时类。

(继承自 Object)
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()

检索但不删除此队列的头,如果此队列为空,则 null 返回 。

Poll()

检索并删除此队列的头,如果此队列为空,则返回 null

Remove()

检索并删除此队列的头。

(继承自 AbstractQueue)
Remove(Object)

要添加

(继承自 AbstractCollection)
RemoveAll(ICollection)

要添加

(继承自 AbstractCollection)
RemoveIf(IPredicate)

基于链接节点的无限线程安全队列。

RetainAll(ICollection)

要添加

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

设置 Handle 属性。

(继承自 Object)
Size()

返回此队列中的元素数。

Spliterator()

在此 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)

基于链接节点的无限线程安全队列。

适用于