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 操作の完了を処理するために必要なメカニズムをカプセル化します。 グループには、I/O イベントを処理し、グループ内のチャネルに対して実行された非同期操作の結果を使用するディスパッチする CompletionHandler completion-handlers
タスクが送信されるスレッド プールが関連付けられています。 プールされたスレッドは、I/O イベントの処理に加えて、非同期 I/O 操作の実行をサポートするために必要な他のタスクを実行することもできます。
非同期チャネル グループは、ここで定義されているメソッド#withCachedThreadPool withCachedThreadPool
を#withFixedThreadPool withFixedThreadPool
呼び出すことによって作成されます。 チャネルは、チャネルの作成時にグループを指定することによってグループにバインドされます。 関連付けられているスレッド プールは、<グループによって所有>/em> されます<。グループが終了すると、関連付けられているスレッド プールがシャットダウンされます。
Java 仮想マシンでは、明示的に作成されたグループに加えて、システム全体 <の既定>のグループ</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></tr></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">java.nio.channels.DefaultThreadPool.initialSize
</th><td> 既定のグループのパラメーターのinitialSize
値 (参照)。#withCachedThreadPool withCachedThreadPool
プロパティの値は、初期サイズ パラメーターである an Integer
の表現としてString
使用されます。 値を解析できない場合は、 Integer
既定のグループの構築中に未指定のエラーがスローされます。 </td></tr></tbody></table>
"threading"><h2>Threading</h2>
グループにバインドされたチャネルで開始された I/O 操作の完了ハンドラーは、グループ内のプールされたスレッドのいずれかによって呼び出されることが保証されます。 これにより、完了ハンドラーは、想定される <em>id</em> を持つスレッドによって実行されます。
I/O 操作がすぐに完了し、開始スレッドがグループ内のプールされたスレッドの 1 つである場合、完了ハンドラーは開始スレッドによって直接呼び出される可能性があります。 スタック オーバーフローを回避するために、実装ではスレッド スタックでのアクティブ化の数に関する制限が課される場合があります。 一部の I/O 操作では、開始スレッドによって完了ハンドラーを直接呼び出すことが禁止される場合があります (参照 AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept
)。
"shutdown"><h2>Shutdown and Termination</h2>
この#shutdown() shutdown
メソッドは、グループの順番に><シャットダウン</em> を開始するために使用されます。 順番にシャットダウンすると、グループがシャットダウンとしてマークされます。さらに、グループにバインドするチャネルを構築しようとするとスロー ShutdownChannelGroupException
されます。 グループがシャットダウンされているかどうかは、メソッドを使用して #isShutdown() isShutdown
テストできます。 シャットダウン後、グループにバインドされているすべての非同期チャネルが閉じられ、アクティブに実行されているすべての完了ハンドラーが完了まで実行され、グループによって使用されるリソースが解放されると、group <em>は終了</em> を行います。 完了ハンドラーを実行しているスレッドを停止または割り込もうとしません。 この #isTerminated() isTerminated
メソッドは、グループが終了したかどうかをテストするために使用され、グループが #awaitTermination awaitTermination
終了するまでメソッドを使用してブロックできます。
この#shutdownNow() shutdownNow
メソッドを使用して、グループの強制的な<>シャットダウン</em> を開始できます。 順序どおりにシャットダウンによって実行されるアクションに加えて、メソッドは shutdownNow
、メソッドを呼び出すかのようにグループ内のすべての開いているチャネルを AsynchronousChannel#close close
閉じます。
1.7 で追加されました。
の Java ドキュメントjava.nio.channels.AsynchronousChannelGroup
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 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() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
Provider() |
このチャネル グループを作成したプロバイダーを返します。 |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
Shutdown() |
グループの順番にシャットダウンを開始します。 |
ShutdownNow() |
グループをシャットダウンし、グループ内の開いているすべてのチャネルを閉じます。 |
ToArray<T>() |
リソース共有を目的とした非同期チャネルのグループ化。 (継承元 Object) |
ToString() |
オブジェクトの文字列表現を返します。 (継承元 Object) |
UnregisterFromRuntime() |
リソース共有を目的とした非同期チャネルのグループ化。 (継承元 Object) |
Wait() |
現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</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) |
リソース共有を目的とした非同期チャネルのグループ化。 |