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”>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.AsynchronousChannelGroupJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

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)

異步通道的群組,用於資源分享。

適用於