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 事件,並派遣到 CompletionHandler completion-handlers 該群組,消耗對群組通道執行的非同步操作結果。 除了處理 I/O 事件外,池化執行緒還可能執行其他支援非同步 I/O 操作所需的任務。
非同步通道群組是透過調用此處定義的 #withFixedThreadPool withFixedThreadPool or #withCachedThreadPool withCachedThreadPool 方法來建立的。 通道透過在建構通道時指定群來綁定該群。 相關的執行緒池由<>群組擁有<;>群組終止會導致關聯執行緒池關閉。
除了明確建立的群組外,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<>th scope=“col”<Description>/th<>/thead<><> tbody<>tr<>th scope=“row”<>java.nio.channels.DefaultThreadPool.threadFactory/th<>td< 此屬性的值被視為具體>類別的完全限定名稱。java.util.concurrent.ThreadFactory ThreadFactory 該類別透過系統類別載入器載入並實例化。
java.util.concurrent.ThreadFactory#newThread newThread工廠的方法會被調用來建立預設群組執行緒池的每個執行緒。 若載入並實例化屬性值的程序失敗,則在建構預設群組時會拋出未指定的錯誤。
</td/tr><tr th><scope = “row”><>/thjava.nio.channels.DefaultThreadPool.initialSize<td> 預設群組參數的值<(參見)。>initialSize#withCachedThreadPool withCachedThreadPool 性質的值取 String 為 的表示 Integer ,即初始大小參數。 若無法解析該值, Integer 則在建立預設群組時會拋出未指定的錯誤。
</td></tr></tbody></table>
「螺紋」><h2>螺紋/<h2>
對於綁定於群組的通道發起的 I/O 操作,完成處理程序必由群組中的某個池執行緒呼叫。 這確保完成處理程序由具有預期 <em>身份/em< 的>執行緒執行。
當 I/O 操作立即完成,且發起執行緒是群組中被集結的執行緒之一時,啟動執行緒可直接呼叫完成處理程序。 為避免堆疊溢位,實作可能會限制執行緒堆疊上的啟用次數。 某些 I/O 操作可能禁止發起執行緒直接呼叫完備處理器(參見 AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept)。
「關機」><h2>關機與終止</h2>
此 #shutdown() shutdown 方法用於啟動 <群組的有>序關閉</em> 。 有序的停機標誌著該團體停擺;進一步嘗試構造一個與群綁定的通道會拋出 ShutdownChannelGroupException。 是否會關閉群組,可以用此 #isShutdown() isShutdown 方法來測試。 一旦關閉, <當所有綁定到該群組的非同步通道關閉,所有正在執行的完成處理程序都已完成,且群組使用的資源被釋放時,群組 em>就會<終止/em> 。 不會嘗試停止或中斷執行完成處理器的執行緒。 此 #isTerminated() isTerminated 方法用於測試群組是否終止,並 #awaitTermination awaitTermination 可用於阻塞直到群組終止。
這個 #shutdownNow() shutdownNow 方法可以用來啟動 <em>強制關閉</em> 對群體的控制。 除了有序關機所執行的動作外,該 shutdownNow 方法還會像呼叫 AsynchronousChannel#close close 該方法一樣關閉群組中所有未開啟的通道。
在 1.7 版本中加入。
Java 文件 java.nio.channels.AsynchronousChannelGroup。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| AsynchronousChannelGroup(AsynchronousChannelProvider) |
初始化這個類別的新實例。 |
| AsynchronousChannelGroup(IntPtr, JniHandleOwnership) |
一組非同步通道用於資源共享。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| IsShutdown |
一組非同步通道用於資源共享。 |
| IsTerminated |
一組非同步通道用於資源共享。 |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
一組非同步通道用於資源共享。 (繼承來源 JavaObject) |
| JniPeerMembers |
一組非同步通道用於資源共享。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
一組非同步通道用於資源共享。 |
| ThresholdType |
一組非同步通道用於資源共享。 |
方法
| 名稱 | Description |
|---|---|
| AwaitTermination(Int64, TimeUnit) |
等待該團體的終止。 |
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
一組非同步通道用於資源共享。 (繼承來源 JavaObject) |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
一組非同步通道用於資源共享。 (繼承來源 JavaObject) |
| Equals(Object) |
一組非同步通道用於資源共享。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| JavaFinalize() |
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| Provider() |
回傳建立此通道群組的提供者。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
一組非同步通道用於資源共享。 (繼承來源 JavaObject) |
| Shutdown() |
開始有序地關閉團體。 |
| ShutdownNow() |
關閉群組並關閉所有開放頻道。 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| WithCachedThreadPool(IExecutorService, Int32) |
建立一個非同步通道群組,並以特定執行緒池建立,並根據需要建立新的執行緒。 |
| WithFixedThreadPool(Int32, IThreadFactory) |
建立一個帶有固定執行緒池的非同步通道群組。 |
| WithThreadPool(IExecutorService) |
建立一個非同步通道群組,並設定給定的執行緒池。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
一組非同步通道用於資源共享。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
一組非同步通道用於資源共享。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
一組非同步通道用於資源共享。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
一組非同步通道用於資源共享。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
一組非同步通道用於資源共享。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
一組非同步通道用於資源共享。 (繼承來源 JavaObject) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一組非同步通道用於資源共享。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |