SynchronousQueue 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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(Boolean) |
|
| SynchronousQueue(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
| Class |
傳回這個 |
| 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() |
傳回一律傳 |
| JavaFinalize() |
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
| Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
| NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
| Offer(Object) |
如果另一個線程正在等候接收,請將指定的專案插入這個佇列中。 |
| Offer(Object, Int64, TimeUnit) |
將指定的專案插入這個佇列中,視需要等候到指定的等候時間,讓另一個線程接收它。 |
| Peek() |
一律傳回 |
| 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() |
傳回空的分割器,其中呼叫 一律會 |
| 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 封鎖佇列,其中每個插入作業都必須等候另一個線程對應的移除作業,反之亦然。 |