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”>caption style=“display:none:”>System properties</caption><thead>><<tr th scope=“col”>System property</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 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 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
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, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <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) |
異步通道的群組,用於資源分享。 |