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> が自動的に構築されます。 構築時にグループを指定しない非同期チャネルは、既定のグループにバインドされます。 既定のグループには、必要に応じて新しいスレッドを作成するスレッド プールが関連付けられています。 既定のグループは、次の表で定義されているシステム プロパティによって構成できます。 既定のグループの が java.util.concurrent.ThreadFactory ThreadFactory
構成されていない場合、既定のグループのプールされたスレッドはスレッドです Thread#isDaemon daemon
。
<table class="striped"><キャプション style="display:none:">System properties</キャプション<>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
プロパティの値は、初期サイズ パラメーターである のInteger
表現になりますString
。 値を として Integer
解析できない場合は、既定のグループの構築中に未指定のエラーがスローされます。 </td></tr></tbody></table>
"threading"><h2>Threading</h2>
グループにバインドされたチャネルで開始された I/O 操作の完了ハンドラーは、グループ内のプールされたスレッドの 1 つによって呼び出されることが保証されます。 これにより、完了ハンドラーが、想定される <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
テストできます。 シャットダウン後、グループにバインドされているすべての非同期チャネルが閉じられ、アクティブに実行されているすべての完了ハンドラーが完了まで実行され、グループによって使用されるリソースが解放されると、グループ <em>は終了/em> を終了<します。 完了ハンドラーを実行しているスレッドを停止または割り込もうとしません。 メソッドは #isTerminated() isTerminated
、グループが終了したかどうかをテストするために使用され、 メソッドを #awaitTermination awaitTermination
使用して、グループが終了するまでブロックできます。
メソッドを#shutdownNow() shutdownNow
使用して、グループの強制的な><シャットダウン</em> を開始できます。 メソッドは、順序どおりにシャットダウンによって実行されるアクションに加えて、 shutdownNow
メソッドを呼び出すかのように、グループ内のすべての開いているチャネルを AsynchronousChannel#close close
閉じます。
1.7 で追加されました。
の Java ドキュメント java.nio.channels.AsynchronousChannelGroup
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
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) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<>は、通知</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) |
リソース共有を目的とした非同期チャネルのグループ化。 |