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> 是队列中处于最短时间的元素。 新元素插入队列尾部,队列检索操作获取队列头上的元素。 当许多线程共享对通用集合的访问权限时,A ConcurrentLinkedQueue 是一个适当的选择。 与大多数其他并发集合实现一样,此类不允许使用 null 元素。

此实现基于 Maged M. Michael 和 Michael L. Scott 中所述的简单、快速和实用非阻塞和阻止并发队列算法采用高效的 <em>非阻塞</em> 算法。

迭代器在某一点或创建迭代器后返回反映队列状态的元素 是弱一致的。 它们不<><引发/em>java.util.ConcurrentModificationException,并且可能会同时执行其他操作。 由于创建迭代器后,队列中包含的元素将完全返回一次。

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

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

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

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

此类是 Java Collections Framework 的成员。

在 1.5 中添加。

Java文档java.util.concurrent.ConcurrentLinkedQueue

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

构造函数

名称 说明
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, Int32)

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

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <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)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

基于链接节点的未绑定线程安全队列队列。

ToEnumerable(IIterable)

基于链接节点的未绑定线程安全队列队列。

ToEnumerable<T>(IIterable)

基于链接节点的未绑定线程安全队列队列。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于