AsynchronousChannelGroup 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
非同步通道群組以供資源分享之用。
[Android.Runtime.Register("java/nio/channels/AsynchronousChannelGroup", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousChannelGroup : Java.Lang.Object
[<Android.Runtime.Register("java/nio/channels/AsynchronousChannelGroup", ApiSince=26, DoNotGenerateAcw=true)>]
type AsynchronousChannelGroup = class
inherit Object
- 繼承
- 屬性
備註
非同步通道群組以供資源分享之用。
非同步通道群組會封裝處理系結至群組所 AsynchronousChannel asynchronous channels
起始之 I/O 作業完成所需的機制。 群組具有相關聯的執行緒集區,這些工作會送出以處理 I/O 事件,並分派至 CompletionHandler completion-handlers
該集區,以取用在群組中通道上執行的非同步作業結果。 除了處理 I/O 事件之外,集區執行緒也可能執行支援非同步 I/O 作業執行所需的其他工作。
非同步通道群組是藉由叫 #withFixedThreadPool withFixedThreadPool
用這裡定義的 或 #withCachedThreadPool withCachedThreadPool
方法所建立。 通道會藉由在建構通道時指定群組來系結至群組。 相關聯的執行緒集區是由 <> 群組所擁有/em > 所擁有 < ;群組終止會導致相關聯的執行緒集區關閉。
除了明確建立的群組之外,JAVA 虛擬機器還會維護自動建構的系統範圍 < em 預設群組 < /em >> 。 在建構時間未指定群組的非同步通道會系結至預設群組。 預設群組具有相關聯的執行緒集區,可視需要建立新的執行緒。 預設群組可以透過下表中定義的系統屬性來設定。 java.util.concurrent.ThreadFactory ThreadFactory
如果未設定預設群組的 ,則預設群組的集區執行緒為 Thread#isDaemon daemon
執行緒。
<table class=「striped」 >< 標題 style=「display:none:」 > System properties < /標題 >< thead <> tr th scope=「col」 > System property < / >< th th scope=「col」 > Description <<> /th/tr <> /thead >< tbody <> tr <<>> th scope=「row」 <java.nio.channels.DefaultThreadPool.threadFactory
> /th >< td > 將此屬性的值視為完整名稱具象 java.util.concurrent.ThreadFactory ThreadFactory
類別的 。 類別會使用系統類別載入器載入並具現化。 系統會叫用 Factory java.util.concurrent.ThreadFactory#newThread newThread
的 方法來建立預設群組執行緒集區的每個執行緒。 如果載入和具現化屬性值的程式失敗,則會在建構預設群組期間擲回未指定的錯誤。 </td >< /tr >< th >< scope=「row」 <java.nio.channels.DefaultThreadPool.initialSize
> /th >< td > 預設群組的參數值 initialSize
(請參閱 #withCachedThreadPool withCachedThreadPool
) 。 屬性的值是做為 String
初始大小參數的 Integer
表示。 如果值無法剖析為 Integer
,則會導致在建構預設群組期間擲回未指定的錯誤。 </td >< /tr >< /tbody >< /table>
「threading」 >< h2 > Threading < /h2>
系結至群組之通道上起始之 I/O 作業的完成處理常式,保證由群組中的其中一個集區執行緒叫用。 這可確保完成處理常式是由具有預期 < em > identity < /em > 的執行緒執行。
其中 I/O 作業會立即完成,而起始執行緒是群組中的其中一個集區執行緒,則起始執行緒可以直接由起始執行緒叫用完成處理常式。 為了避免堆疊溢位,實作可能會限制執行緒堆疊上的啟用次數。 某些 I/O 作業可能會禁止直接由起始執行緒叫用完成處理常式, (請參閱 AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept
) 。
「shutdown」 >< h2 > Shutdown and Termination < /h2>
方法 #shutdown() shutdown
可用來起始 < 群組的 em > 順序關機 < /em > 。 依序關機會將群組標示為關機;進一步嘗試建構系結至群組的通道將會擲回 ShutdownChannelGroupException
。 是否可以使用 #isShutdown() isShutdown
方法來測試群組是否關閉。 關閉之後,當系結至群組的所有非同步通道都關閉時,群組 < em > 就會終止 < /em > 、所有主動執行的完成處理常式都會執行到完成,而且群組所使用的資源都會釋放。 不會嘗試停止或中斷執行完成處理常式的執行緒。 方法 #isTerminated() isTerminated
可用來測試群組是否已終止,而且 #awaitTermination awaitTermination
方法可用來封鎖,直到群組終止為止。
#shutdownNow() shutdownNow
方法可用來起始 < 群組的 em > 強制關機 < /em > 。 除了依序關機執行的動作之外, shutdownNow
方法也會關閉群組中的所有開啟通道,就像叫用 方法一 AsynchronousChannel#close close
樣。
已在 1.7 中新增。
的 java.nio.channels.AsynchronousChannelGroup
JAVA 檔。
此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據中所述的詞彙使用。
建構函式
AsynchronousChannelGroup(AsynchronousChannelProvider) |
初始化這個類別的新實例。 |
AsynchronousChannelGroup(IntPtr, JniHandleOwnership) |
非同步通道群組以供資源分享之用。 |
屬性
Class |
傳回這個 |
Handle |
基礎 Android 實例的控制碼。 (繼承來源 Object) |
IsShutdown |
非同步通道群組以供資源分享之用。 |
IsTerminated |
非同步通道群組以供資源分享之用。 |
JniIdentityHashCode |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
JniPeerMembers |
非同步通道群組以供資源分享之用。 |
PeerReference |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
ThresholdClass |
非同步通道群組以供資源分享之用。 |
ThresholdType |
非同步通道群組以供資源分享之用。 |
方法
AwaitTermination(Int64, TimeUnit) |
等候群組終止。 |
Clone() |
建立並傳回這個 物件的複本。 (繼承來源 Object) |
Dispose() |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
Dispose(Boolean) |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
JavaFinalize() |
當垃圾收集判斷物件沒有其他參考時,由物件上的垃圾收集行程呼叫。 (繼承來源 Object) |
Notify() |
喚醒正在等候此物件的監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
Provider() |
傳回建立此通道群組的提供者。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
Shutdown() |
起始群組的排序關機。 |
ShutdownNow() |
關閉群組,並關閉群組中的所有開啟通道。 |
ToArray<T>() |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
非同步通道群組以供資源分享之用。 (繼承來源 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) |
WithCachedThreadPool(IExecutorService, Int32) |
建立具有指定執行緒集區的非同步通道群組,以視需要建立新的執行緒。 |
WithFixedThreadPool(Int32, IThreadFactory) |
使用固定執行緒集區建立異步通道群組。 |
WithThreadPool(IExecutorService) |
使用指定的執行緒集區建立異步通道群組。 |
明確介面實作
IJavaPeerable.Disposed() |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
IJavaPeerable.Finalized() |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
IJavaPeerable.JniManagedPeerState |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
非同步通道群組以供資源分享之用。 (繼承來源 Object) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
非同步通道群組以供資源分享之用。 |
GetJniTypeName(IJavaPeerable) |
非同步通道群組以供資源分享之用。 |