SynchronousQueue 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個阻擋隊列,每個插入操作必須等待另一執行緒相應的移除操作,反之亦然。
[Android.Runtime.Register("java/util/concurrent/SynchronousQueue", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class SynchronousQueue : Java.Util.AbstractQueue, IDisposable, 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
- 繼承
- 屬性
- 實作
備註
一個阻擋隊列,每個插入操作必須等待另一執行緒相應的移除操作,反之亦然。 同步隊列沒有任何內部容量,甚至連容量為一都沒有。 你無法 peek 在同步佇列中插入,因為元素只有在你嘗試移除時才存在;除非有其他執行緒嘗試移除,否則你無法插入任何方法;你無法重複,因為沒有重複可重複的。
<佇列的 em>head</em> 是第一個排隊插入執行緒試圖加入佇列的元素;若沒有排隊執行緒,則無法移除可移除的元素,將poll()返回 null。 對於其他 Collection 方法(例如 contains),a SynchronousQueue 作為空集合。 此佇列不允許 null 元素。
同步佇列類似於CSP和Ada中使用的會合通道。 它們非常適合切換設計,即一個執行緒中執行的物件必須與另一個執行緒中執行的物件同步,才能傳遞資訊、事件或任務。
此類別支援一個可選的公平性政策,用於排序等待的生產者與消費者執行緒。 預設情況下,這種排序並不保證。 然而,設置公平性以允許 true 執行緒依FIFO順序存取的隊列。
這個類別及其迭代器實作了 和 介面中所有 <em>可選</em> 方法Collection。Iterator
此類別是 Java 集合框架的成員。
已在1.5中新增。
Java 文件 java.util.concurrent.SynchronousQueue。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| SynchronousQueue() |
建立 |
| SynchronousQueue(Boolean) |
建立符合指定公平政策的 。 |
| SynchronousQueue(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
傳回這個 |
| 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) |
| DrainTo(ICollection, Int32) |
最多從該佇列中移除指定數量的可用元素,並將其加入給定的集合中。 |
| DrainTo(ICollection) |
從此佇列中移除所有可用元素,並將其加入給定的集合中。 |
| Element() |
擷取但不移除此隊列的首端。 (繼承來源 AbstractQueue) |
| Equals(Object) |
一個阻擋隊列,每個插入操作必須等待另一執行緒相應的移除操作,反之亦然。 (繼承來源 JavaObject) |
| Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
| GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
| Iterator() |
回傳一個空迭代器,且 |
| JavaFinalize() |
已淘汰.
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
| Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
| NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
| Offer(Object, Int64, TimeUnit) |
將指定元素插入此佇列,必要時等待指定時間,等待另一執行緒接收。 |
| Offer(Object) |
若有其他執行緒等待接收,則將指定元素插入此佇列。 |
| Peek() |
一律傳回 |
| Poll() |
如果有其他執行緒正在提供某個元素,則會擷取並移除該佇列的頭部。 |
| Poll(Int64, TimeUnit) |
擷取並移除此佇列的頭部,必要時等待指定等待時間內,等待其他執行緒插入該佇列。 |
| Put(Object) |
將指定元素加入佇列,必要時等待其他執行緒接收。 |
| RemainingCapacity() |
永遠傳回零。 |
| Remove() |
擷取並移除此佇列的頭部。 (繼承來源 AbstractQueue) |
| Remove(Object) |
待補充 (繼承來源 AbstractCollection) |
| RemoveAll(ICollection) |
待補充 (繼承來源 AbstractCollection) |
| RetainAll(ICollection) |
待補充 (繼承來源 AbstractCollection) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
一個阻擋隊列,每個插入操作必須等待另一執行緒相應的移除操作,反之亦然。 (繼承來源 JavaObject) |
| Size() |
永遠傳回零。 |
| Spliterator() |
回傳一個空的分頻器,該分頻器中呼叫 |
| Take() |
擷取並移除此佇列的頭部,必要時等待其他執行緒插入。 |
| ToArray() |
待補充 (繼承來源 AbstractCollection) |
| ToArray(Object[]) |
待補充 (繼承來源 AbstractCollection) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
| Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</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) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
| JavaCast<TResult>(IJavaObject) |
一個阻擋隊列,每個插入操作必須等待另一執行緒相應的移除操作,反之亦然。 |
| OfferAsync(IBlockingQueue, Object, Int64, TimeUnit) |
一個阻擋隊列,每個插入操作必須等待另一執行緒相應的移除操作,反之亦然。 |
| OfferAsync(IBlockingQueue, Object) |
一個阻擋隊列,每個插入操作必須等待另一執行緒相應的移除操作,反之亦然。 |
| PollAsync(IBlockingQueue, Int64, TimeUnit) |
一個阻擋隊列,每個插入操作必須等待另一執行緒相應的移除操作,反之亦然。 |
| PutAsync(IBlockingQueue, Object) |
一個阻擋隊列,每個插入操作必須等待另一執行緒相應的移除操作,反之亦然。 |
| TakeAsync(IBlockingQueue) |
一個阻擋隊列,每個插入操作必須等待另一執行緒相應的移除操作,反之亦然。 |
| ToEnumerable(IIterable) |
回傳 和 IEnumerable ,會對 Java IIterable進行迭代,允許 |
| ToEnumerable<T>(IIterable) |
回傳 和 IEnumerable<T> ,該 在 Java IIterable上迭代,將每個元素 集結為 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |