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>default group</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を参照)。 プロパティの値は、初期サイズ パラメーターであるStringのInteger表現になります。 値を Integer として解析できない場合、既定のグループの構築中に未指定のエラーがスローされます。
</td></tr></tbody></table>
"threading"><h2>Threading</h2>
グループにバインドされたチャネルで開始された I/O 操作の完了ハンドラーは、グループ内のプールされたスレッドのいずれかによって呼び出されることが保証されます。 これにより、完了ハンドラーは、予期される <em>identity</em>を持つスレッドによって実行されます。
I/O 操作がすぐに完了し、開始スレッドがグループ内のプールされたスレッドの 1 つである場合、完了ハンドラーは開始スレッドによって直接呼び出される可能性があります。 スタック オーバーフローを回避するために、実装ではスレッド スタックでのアクティブ化の数に関する制限が課される場合があります。 一部の I/O 操作では、開始スレッドによって完了ハンドラーを直接呼び出すことが禁止される場合があります ( AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept参照)。
"shutdown"><h2>Shutdown and Termination</h2>
#shutdown() shutdown メソッドは、グループの <em>orderly shutdown</em> を開始するために使用されます。 順番にシャットダウンすると、グループがシャットダウンとしてマークされます。さらに、グループにバインドするチャネルを構築しようとすると、 ShutdownChannelGroupExceptionがスローされます。 グループがシャットダウンされているかどうかは、 #isShutdown() isShutdown メソッドを使用してテストできます。 シャットダウン後、グループ <em>terminates</em> グループにバインドされているすべての非同期チャネルが閉じられると、アクティブに実行されているすべての完了ハンドラーが完了まで実行され、グループによって使用されるリソースが解放されます。 完了ハンドラーを実行しているスレッドを停止または割り込もうとしません。
#isTerminated() isTerminated メソッドは、グループが終了したかどうかをテストするために使用され、#awaitTermination awaitTermination メソッドを使用して、グループが終了するまでブロックできます。
#shutdownNow() shutdownNowメソッドを使用して、グループの<em>強制シャットダウン</em>を開始できます。
shutdownNow メソッドは、順序付けされたシャットダウンによって実行されるアクションに加えて、AsynchronousChannel#close close メソッドを呼び出すかのように、グループ内のすべての開いているチャネルを閉じます。
1.7 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| AsynchronousChannelGroup(AsynchronousChannelProvider) |
このクラスの新しいインスタンスを初期化します。 |
| AsynchronousChannelGroup(IntPtr, JniHandleOwnership) |
リソース共有を目的とした非同期チャネルのグループ化。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| IsShutdown |
リソース共有を目的とした非同期チャネルのグループ化。 |
| IsTerminated |
リソース共有を目的とした非同期チャネルのグループ化。 |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
リソース共有を目的とした非同期チャネルのグループ化。 (継承元 JavaObject) |
| JniPeerMembers |
リソース共有を目的とした非同期チャネルのグループ化。 |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| ThresholdClass |
リソース共有を目的とした非同期チャネルのグループ化。 |
| ThresholdType |
リソース共有を目的とした非同期チャネルのグループ化。 |
メソッド
| 名前 | 説明 |
|---|---|
| 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() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 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>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| WithCachedThreadPool(IExecutorService, Int32) |
必要に応じて新しいスレッドを作成する特定のスレッド プールを持つ非同期チャネル グループを作成します。 |
| WithFixedThreadPool(Int32, IThreadFactory) |
固定スレッド プールを使用して非同期チャネル グループを作成します。 |
| WithThreadPool(IExecutorService) |
特定のスレッド プールを使用して非同期チャネル グループを作成します。 |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
リソース共有を目的とした非同期チャネルのグループ化。 (継承元 JavaObject) |
| IJavaPeerable.Finalized() |
リソース共有を目的とした非同期チャネルのグループ化。 (継承元 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
リソース共有を目的とした非同期チャネルのグループ化。 (継承元 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
リソース共有を目的とした非同期チャネルのグループ化。 (継承元 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
リソース共有を目的とした非同期チャネルのグループ化。 (継承元 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
リソース共有を目的とした非同期チャネルのグループ化。 (継承元 JavaObject) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
リソース共有を目的とした非同期チャネルのグループ化。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|