語言

ITransferQueue 介面

定義

生產 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

若至少有一位消費者等待透過或定true時接收元素Take(),則回傳Poll(Int64, TimeUnit)。

IsEmpty

若此處Collection不包含任何元素,則回傳true。

(繼承來源 ICollection)
JniIdentityHashCode

回傳包裹實例的 java.lang.System.identityHashCode() 值。

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

生產 BlockingQueue 者可以等待消費者接收元素。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

(繼承來源 IJavaPeerable)
WaitingConsumerCount

回傳一個估計的消費者數量,該使用者等待透過 Take() 或定 Poll(Int64, TimeUnit)時接收元素。

方法

名稱 Description
Add(Object)

若可立即插入指定元素且不違反容量限制,則插入該佇列;成功時返回true,若目前無空間則拋棄 。IllegalStateException

(繼承來源 IQueue)
AddAll(ICollection)

將指定集合中的所有元素加入此集合(可選操作)。

(繼承來源 ICollection)
Clear()

移除此集合中的所有元素(可選操作)。

(繼承來源 ICollection)
Contains(Object)

若此集合包含指定元素,則回傳 true 。

(繼承來源 ICollection)
ContainsAll(ICollection)

若此集合包含指定集合中的所有元素,則回傳 true 。

(繼承來源 ICollection)
Disposed()

當實例被處理後才被召喚。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果沒有未解決的參考資料,則 Dispose()呼叫;否則,則不做任何事。

(繼承來源 IJavaPeerable)
DrainTo(ICollection, Int32)

最多從該佇列中移除指定數量的可用元素,並將其加入給定的集合中。

(繼承來源 IBlockingQueue)
DrainTo(ICollection)

從此佇列中移除所有可用元素,並將其加入給定的集合中。

(繼承來源 IBlockingQueue)
Element()

擷取但不移除此隊列的首端。

(繼承來源 IQueue)
Equals(Object)

比較指定物件與此集合以求相等。

(繼承來源 ICollection)
Finalized()

當實例完成後才會被通知。

(繼承來源 IJavaPeerable)
ForEach(IConsumer)

對每個元素 Iterable 執行指定動作,直到所有元素都處理完畢或動作拋出異常。

(繼承來源 IIterable)
GetHashCode()

回傳此集合的雜湊碼值。

(繼承來源 ICollection)
Iterator()

回傳該集合中元素的迭代器。

(繼承來源 ICollection)
Offer(Object, Int64, TimeUnit)

將指定元素插入此佇列,必要時可等待至指定時間以待空間。

(繼承來源 IBlockingQueue)
Offer(Object)

若能立即插入指定元素且不違反容量限制,則會將指定元素插入佇列。

(繼承來源 IQueue)
Peek()

擷取但不移除該佇列的首部,若該佇列為空則返回 null 。

(繼承來源 IQueue)
Poll()

擷取並移除此佇列的首,或若佇列為空則返回 null 。

(繼承來源 IQueue)
Poll(Int64, TimeUnit)

擷取並移除此佇列的頭部,必要時會等待指定等待時間以讓元素可用。

(繼承來源 IBlockingQueue)
Put(Object)

將指定元素插入此佇列,必要時等待空間可用。

(繼承來源 IBlockingQueue)
RemainingCapacity()

回傳這個佇列理想上(在沒有記憶體或資源限制的情況下)可接受且不阻塞,或 Integer.MAX_VALUE 在沒有內在限制的情況下接受的額外元素數量。

(繼承來源 IBlockingQueue)
Remove()

擷取並移除此佇列的頭部。

(繼承來源 IQueue)
Remove(Object)

若該集合存在,則移除該集合中單一的實例(可選操作)。

(繼承來源 ICollection)
RemoveAll(ICollection)

移除該集合中所有同時包含於指定集合中的元素(可選操作)。

(繼承來源 ICollection)
RemoveIf(IPredicate)

移除該集合中所有滿足該謂詞的元素(可選操作)。

(繼承來源 ICollection)
RetainAll(ICollection)

只保留該集合中包含於指定集合中的元素(可選操作)。

(繼承來源 ICollection)
SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode。

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

生產 BlockingQueue 者可以等待消費者接收元素。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference。

(繼承來源 IJavaPeerable)
Size()

回傳此集合中的元素數量。

(繼承來源 ICollection)
Spliterator()

在由此Spliterator描述的元素上建立 a Iterable 。

(繼承來源 IIterable)
Take()

擷取並移除此佇列的頭部,必要時等待元素可用。

(繼承來源 IBlockingQueue)
ToArray()

回傳包含此集合中所有元素的陣列。

(繼承來源 ICollection)
ToArray(IIntFunction)

回傳包含此集合中所有元素的陣列,並使用所提供的 generator 函式來分配回傳的陣列。

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

回傳包含此集合中所有元素的陣列;回傳陣列的執行時型別即為指定陣列的類型。

(繼承來源 ICollection)
Transfer(Object)

將元素轉移給消費者,必要時等待。

TryTransfer(Object, Int64, TimeUnit)

若能在逾時期內將元件轉移給消費者,則會進行。

TryTransfer(Object)

如果可能,立即將元件轉移給等待中的消費者。

UnregisterFromRuntime()

取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。

(繼承來源 IJavaPeerable)

明確介面實作

名稱 Description
IIterable.Spliterator()

在此集合中建立 元素 Spliterator 。

(繼承來源 ICollection)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

生產 BlockingQueue 者可以等待消費者接收元素。

OfferAsync(IBlockingQueue, Object, Int64, TimeUnit)

生產 BlockingQueue 者可以等待消費者接收元素。

OfferAsync(IBlockingQueue, Object)

生產 BlockingQueue 者可以等待消費者接收元素。

PollAsync(IBlockingQueue, Int64, TimeUnit)

生產 BlockingQueue 者可以等待消費者接收元素。

PutAsync(IBlockingQueue, Object)

生產 BlockingQueue 者可以等待消費者接收元素。

TakeAsync(IBlockingQueue)

生產 BlockingQueue 者可以等待消費者接收元素。

ToEnumerable(IIterable)

回傳 和 IEnumerable ,會對 Java IIterable進行迭代,允許 foreach 和 LINQ 與 Java 集合類型一起使用。 每個元素都會從其 Java 實例編組到對應的受管理型別。

ToEnumerable<T>(IIterable)

回傳 和 IEnumerable<T> ,該 在 Java IIterable上迭代,將每個元素 集結為 T。 這使得 foreach LINQ 可以搭配 Java 集合類型一起使用。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於