語言

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.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> of queue 是指在佇列中停留時間最短的元素。 新元素會入在佇列尾端,而佇列擷取操作則取得佇列頂端的元素。 當多個執行緒共享共用集合時,A ConcurrentLinkedQueue 是合適的選擇。 與大多數其他並行集合實作一樣,此類別不允許使用 null 元素。

此實作採用了一種高效的 <電磁非>阻塞</電磁顯現> 演算法,該演算法由 Maged M. Michael 與 Michael L. Scott 在 《簡單、快速且實用的非阻塞與阻塞並行佇列演算法 》中描述。

迭代器是 弱一致性的,回傳的元素反映佇列在迭代器建立時或自建立以來的狀態。 他們不做</><>丟,java.util.ConcurrentModificationException並且可能與其他操作同時進行。 自迭代器建立以來,隊列中包含的元素將被回傳一次。

請注意,與大多數集合不同,該 size 方法是 <em>NOT</em> 為常數時間操作。 由於這些佇列是非同步的,要確定目前元素的數量需要遍歷元素,因此若在遍歷過程中修改此集合,可能會報告不準確的結果。

加入、移除或檢查多個元素的 #addAll批量操作,如 , #removeIf#forEach或 ,則是 <em>not</> em 保證會以原子方式執行。 例如,與操作forEach同時進行addAll的遍歷可能只觀察到部分新增元素。

這個類別及其迭代器實作了 和 介面中所有 <em>可選</em> 方法Queue。Iterator

記憶體一致性效應:與其他並行集合一樣,執行緒中在將物件放入 ConcurrentLinkedQueue<i><> 之前/i 之前的動作,發生在該元素ConcurrentLinkedQueue從另一個執行緒中移除後。

此類別是 Java 集合框架的成員。

已在1.5中新增。

的 java.util.concurrent.ConcurrentLinkedQueueJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

名稱 Description
ConcurrentLinkedQueue()

會產生 ConcurrentLinkedQueue 一個初始為空的 。

ConcurrentLinkedQueue(ICollection)

建立初始包含給定集合元素的 , ConcurrentLinkedQueue 並依照集合迭代器的遍歷順序加入。

ConcurrentLinkedQueue(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsEmpty

待補充

(繼承來源 AbstractCollection)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

基於連結節點的無界安全執行緒佇列。

(繼承來源 JavaObject)
JniPeerMembers

基於連結節點的無界安全執行緒佇列。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

方法

名稱 Description
Add(Object)

待補充

(繼承來源 AbstractCollection)
AddAll(ICollection)

待補充

(繼承來源 AbstractCollection)
Clear()

待補充

(繼承來源 AbstractCollection)
Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

基於連結節點的無界安全執行緒佇列。

(繼承來源 JavaObject)
Contains(Object)

待補充

(繼承來源 AbstractCollection)
ContainsAll(ICollection)

待補充

(繼承來源 AbstractCollection)
Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

基於連結節點的無界安全執行緒佇列。

(繼承來源 JavaObject)
Element()

擷取但不移除此隊列的首端。

(繼承來源 AbstractQueue)
Equals(Object)

基於連結節點的無界安全執行緒佇列。

(繼承來源 JavaObject)
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)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

基於連結節點的無界安全執行緒佇列。

(繼承來源 JavaObject)
Size()

回傳此佇列中的元素數量。

Spliterator()

回傳 a Spliterator 對佇列中的元素。

ToArray()

待補充

(繼承來源 AbstractCollection)
ToArray(Object[])

待補充

(繼承來源 AbstractCollection)
ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

基於連結節點的無界安全執行緒佇列。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

基於連結節點的無界安全執行緒佇列。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

基於連結節點的無界安全執行緒佇列。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

基於連結節點的無界安全執行緒佇列。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

基於連結節點的無界安全執行緒佇列。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

基於連結節點的無界安全執行緒佇列。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

基於連結節點的無界安全執行緒佇列。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

基於連結節點的無界安全執行緒佇列。

ToEnumerable(IIterable)

回傳 和 IEnumerable ,會對 Java IIterable進行迭代,允許 foreach 和 LINQ 與 Java 集合類型一起使用。 每個元素都會從其 Java 實例編組到對應的受管理型別。

ToEnumerable<T>(IIterable)

回傳 和 IEnumerable<T> ,該 在 Java IIterable上迭代,將每個元素 集結為 T。 這使得 foreach LINQ 可以搭配 Java 集合類型一起使用。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於