Share via


AsynchronousChannelGroup 類別

定義

非同步通道群組以供資源分享之用。

[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
繼承
AsynchronousChannelGroup
屬性

備註

非同步通道群組以供資源分享之用。

非同步通道群組會封裝處理系結至群組所 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

傳回這個 Object 的執行時間類別。

(繼承來源 Object)
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)

非同步通道群組以供資源分享之用。

適用於