ITransferQueue 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
生產 BlockingQueue 者可以等待消費者接收元素。
[Android.Runtime.Register("java/util/concurrent/TransferQueue", "", "Java.Util.Concurrent.ITransferQueueInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface ITransferQueue : IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IBlockingQueue
[<Android.Runtime.Register("java/util/concurrent/TransferQueue", "", "Java.Util.Concurrent.ITransferQueueInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type ITransferQueue = interface
interface IBlockingQueue
interface IQueue
interface ICollection
interface IIterable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 衍生
- 屬性
- 實作
備註
生產 BlockingQueue 者可以等待消費者接收元素。
TransferQueue A 可能在訊息傳遞應用中很有用,生產者有時(使用方法#transfer)等待消費者呼叫或 ,而有時則透過takepoll方法put排隊元素而不等待接收。 #tryTransfer(Object) 非阻塞及 #tryTransfer(Object, long, TimeUnit) 逾時 tryTransfer 版本也可用。 也可以透過 TransferQueue查詢 A #hasWaitingConsumer 是否存在任何執行緒等待項目,這與操作peek的反向類比。
與其他阻塞佇列一樣,a TransferQueue 可能具有容量限制。 若是如此,嘗試的傳輸操作可能會在等待可用空間時阻擋,和/或隨後阻擋消費者等待接收。 請注意,在容量為零的佇列中, SynchronousQueue例如 , put 和 transfer 實際上是同義的。
此介面是 Java 集合框架的成員。
在 1.7 版本中加入。
Java 文件 java.util.concurrent.TransferQueue。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| HasWaitingConsumer |
若至少有一位消費者等待透過或定 |
| IsEmpty |
若此處 |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
生產 |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
| WaitingConsumerCount |
回傳一個估計的消費者數量,該使用者等待透過 Take() 或定 Poll(Int64, TimeUnit)時接收元素。 |
方法
| 名稱 | Description |
|---|---|
| Add(Object) |
若可立即插入指定元素且不違反容量限制,則插入該佇列;成功時返回 |
| AddAll(ICollection) |
將指定集合中的所有元素加入此集合(可選操作)。 (繼承來源 ICollection) |
| Clear() |
移除此集合中的所有元素(可選操作)。 (繼承來源 ICollection) |
| Contains(Object) |
若此集合包含指定元素,則回傳 |
| ContainsAll(ICollection) |
若此集合包含指定集合中的所有元素,則回傳 |
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| DrainTo(ICollection, Int32) |
最多從該佇列中移除指定數量的可用元素,並將其加入給定的集合中。 (繼承來源 IBlockingQueue) |
| DrainTo(ICollection) |
從此佇列中移除所有可用元素,並將其加入給定的集合中。 (繼承來源 IBlockingQueue) |
| Element() |
擷取但不移除此隊列的首端。 (繼承來源 IQueue) |
| Equals(Object) |
比較指定物件與此集合以求相等。 (繼承來源 ICollection) |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| ForEach(IConsumer) |
對每個元素 |
| GetHashCode() |
回傳此集合的雜湊碼值。 (繼承來源 ICollection) |
| Iterator() |
回傳該集合中元素的迭代器。 (繼承來源 ICollection) |
| Offer(Object, Int64, TimeUnit) |
將指定元素插入此佇列,必要時可等待至指定時間以待空間。 (繼承來源 IBlockingQueue) |
| Offer(Object) |
若能立即插入指定元素且不違反容量限制,則會將指定元素插入佇列。 (繼承來源 IQueue) |
| Peek() |
擷取但不移除該佇列的首部,若該佇列為空則返回 |
| Poll() |
擷取並移除此佇列的首,或若佇列為空則返回 |
| Poll(Int64, TimeUnit) |
擷取並移除此佇列的頭部,必要時會等待指定等待時間以讓元素可用。 (繼承來源 IBlockingQueue) |
| Put(Object) |
將指定元素插入此佇列,必要時等待空間可用。 (繼承來源 IBlockingQueue) |
| RemainingCapacity() |
回傳這個佇列理想上(在沒有記憶體或資源限制的情況下)可接受且不阻塞,或 |
| Remove() |
擷取並移除此佇列的頭部。 (繼承來源 IQueue) |
| Remove(Object) |
若該集合存在,則移除該集合中單一的實例(可選操作)。 (繼承來源 ICollection) |
| RemoveAll(ICollection) |
移除該集合中所有同時包含於指定集合中的元素(可選操作)。 (繼承來源 ICollection) |
| RemoveIf(IPredicate) |
移除該集合中所有滿足該謂詞的元素(可選操作)。 (繼承來源 ICollection) |
| RetainAll(ICollection) |
只保留該集合中包含於指定集合中的元素(可選操作)。 (繼承來源 ICollection) |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
生產 |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| Size() |
回傳此集合中的元素數量。 (繼承來源 ICollection) |
| Spliterator() |
在由此 |
| Take() |
擷取並移除此佇列的頭部,必要時等待元素可用。 (繼承來源 IBlockingQueue) |
| ToArray() |
回傳包含此集合中所有元素的陣列。 (繼承來源 ICollection) |
| ToArray(IIntFunction) |
回傳包含此集合中所有元素的陣列,並使用所提供的 |
| ToArray(Object[]) |
回傳包含此集合中所有元素的陣列;回傳陣列的執行時型別即為指定陣列的類型。 (繼承來源 ICollection) |
| Transfer(Object) |
將元素轉移給消費者,必要時等待。 |
| TryTransfer(Object, Int64, TimeUnit) |
若能在逾時期內將元件轉移給消費者,則會進行。 |
| TryTransfer(Object) |
如果可能,立即將元件轉移給等待中的消費者。 |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
明確介面實作
| 名稱 | Description |
|---|---|
| IIterable.Spliterator() |
在此集合中建立 元素 |
擴充方法
| 名稱 | 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) |
試著強制 |