共用方式為


SynchronousQueue 類別

定義

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

[Android.Runtime.Register("java/util/concurrent/SynchronousQueue", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class SynchronousQueue : Java.Util.AbstractQueue, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Util.Concurrent.IBlockingQueue
[<Android.Runtime.Register("java/util/concurrent/SynchronousQueue", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type SynchronousQueue = class
    inherit AbstractQueue
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IBlockingQueue
    interface IQueue
    interface ICollection
    interface IIterable
繼承
屬性
實作

備註

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。 同步佇列沒有任何內部容量,甚至沒有一個容量。 您無法 peek 在同步佇列中,因為只有在您嘗試移除元素時才會存在;除非另一個線程嘗試移除它,否則您無法插入元素(使用任何方法;您無法反覆運算,因為沒有任何可反覆運算的專案。 <佇列的 em>head</em> 是第一個佇列插入線程嘗試新增至佇列的專案;如果沒有這類佇列線程,則沒有任何專案可供移除,且poll()會傳回 null。 針對其他 Collection 方法的目的(例如 contains),做 SynchronousQueue 為空集合。 此佇列不允許 null 專案。

同步佇列類似於 CSP 和 Ada 中使用的會合通道。 它們非常適合交接設計,其中一個線程中執行的對象必須與在另一個線程中執行的物件同步,才能將某些資訊、事件或工作交給它。

這個類別支持選擇性的公平性原則,以排序等候生產者和取用者線程。 根據預設,不保證此排序。 不過,以公平性建構的佇列會設定為 true 以 FIFO 順序授與線程存取權。

這個類別及其反覆運算器會實作 和 Iterator 介面的所有 <em> 選擇性</em> 方法Collection

這個類別是 Java Collections Framework 的成員

已在1.5中新增。

java.util.concurrent.SynchronousQueueJava 檔。

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

建構函式

SynchronousQueue()

SynchronousQueue建立具有非air 存取原則的 。

SynchronousQueue(Boolean)

SynchronousQueue使用指定的公平性原則建立 。

SynchronousQueue(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

屬性

Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
Handle

基礎Android實例的句柄。

(繼承來源 Object)
IsEmpty

要新增

(繼承來源 AbstractCollection)
JniIdentityHashCode

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

(繼承來源 Object)
JniPeerMembers

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

PeerReference

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

(繼承來源 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()

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

(繼承來源 Object)
Dispose(Boolean)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

(繼承來源 Object)
DrainTo(ICollection)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

DrainTo(ICollection, Int32)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

Element()

擷取但不會移除此佇列的前端。

(繼承來源 AbstractQueue)
Equals(Object)

指出其他物件是否「等於」這個物件。

(繼承來源 Object)
GetHashCode()

傳回此物件的雜湊碼值。

(繼承來源 Object)
Iterator()

傳回一律傳false回的hasNext空反覆運算器。

JavaFinalize()

當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。

(繼承來源 Object)
Notify()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
Offer(Object)

如果另一個線程正在等候接收,請將指定的專案插入這個佇列中。

Offer(Object, Int64, TimeUnit)

將指定的專案插入這個佇列中,視需要等候到指定的等候時間,讓另一個線程接收它。

Peek()

一律傳回 null

Poll()

如果另一個線程目前正在讓專案可供使用,擷取並移除此佇列的前端。

Poll(Int64, TimeUnit)

擷取並移除此佇列的前端,視需要等候指定的等候時間,讓另一個線程插入佇列。

Put(Object)

將指定的專案新增至這個佇列,視需要等候另一個線程接收它。

RemainingCapacity()

永遠傳回零。

Remove()

擷取並移除此佇列的前端。

(繼承來源 AbstractQueue)
Remove(Object)

要新增

(繼承來源 AbstractCollection)
RemoveAll(ICollection)

要新增

(繼承來源 AbstractCollection)
RetainAll(ICollection)

要新增

(繼承來源 AbstractCollection)
SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
Size()

永遠傳回零。

Spliterator()

傳回空的分割器,其中呼叫 一律會 Spliterator#trySplit() trySplit 傳回 null

Take()

擷取並移除此佇列的前端,並視需要等候另一個線程插入它。

ToArray()

要新增

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

要新增

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

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

(繼承來源 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()

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

(繼承來源 Object)
IJavaPeerable.DisposeUnlessReferenced()

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

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

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

(繼承來源 Object)
IJavaPeerable.JniManagedPeerState

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

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

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

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

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

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

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

(繼承來源 Object)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

GetJniTypeName(IJavaPeerable)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

OfferAsync(IBlockingQueue, Object)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

OfferAsync(IBlockingQueue, Object, Int64, TimeUnit)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

PollAsync(IBlockingQueue, Int64, TimeUnit)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

PutAsync(IBlockingQueue, Object)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

TakeAsync(IBlockingQueue)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

ToEnumerable(IIterable)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

ToEnumerable<T>(IIterable)

BlockingQueue 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。

適用於