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
此方法是 < em > NOT < /em > 常數時間作業。 由於這些佇列的非同步本質,判斷目前的元素數目需要元素的周遊,因此在周遊期間修改此集合時,可能會報告不正確的結果。
新增、移除或檢查多個元素的大量作業,例如 #addAll
、 #removeIf
或 #forEach
,保證 >< 不會 < /em > 以不可部分完成的方式執行。 例如, forEach
與作業並行 addAll
的周遊可能只會觀察一些新增的專案。
這個類別及其反覆運算器會實作 和 Iterator
介面的所有 < em > 選擇性 < /em > 方法 Queue
。
記憶體一致性效果:如同其他並行集合,在將物件放入 i > 發生之前 < /i > 動作之前,執行緒中的動作會從 ConcurrentLinkedQueue
另一 ConcurrentLinkedQueue
< 個執行緒中的 存取或移除該元素。
這個類別是 JAVA Collections Framework的成員。
在 1.5 中新增。
的 java.util.concurrent.ConcurrentLinkedQueue
JAVA 檔。
此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。
建構函式
ConcurrentLinkedQueue() |
|
ConcurrentLinkedQueue(ICollection) |
|
ConcurrentLinkedQueue(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 標記法時使用的建構函式;由執行時間呼叫。 |
屬性
Class |
傳回這個 |
Handle |
基礎 Android 實例的控制碼。 (繼承來源 Object) |
IsEmpty |
要新增 (繼承來源 AbstractCollection) |
JniIdentityHashCode |
以連結節點為基礎的未系結執行緒安全佇列佇列。 (繼承來源 Object) |
JniPeerMembers |
以連結節點為基礎的未系結執行緒安全佇列佇列。 |
PeerReference |
以連結節點為基礎的未系結執行緒安全佇列佇列。 (繼承來源 Object) |
ThresholdClass |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 |
ThresholdType |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 |
方法
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 < notified/em > 或 < em > interrupted < /em > 。 >< (繼承來源 Object) |
Wait(Int64) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/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) |
以連結節點為基礎的未系結執行緒安全佇列佇列。 |