語言

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 事件,並派遣到 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

回傳此 Object的執行時類別。

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

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

JavaAs<TResult>(IJavaPeerable)

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

一組非同步通道用於資源共享。

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

適用於