モジュール java.base
パッケージ java.nio.channels.spi

クラスAsynchronousChannelProvider

java.lang.Object
java.nio.channels.spi.AsynchronousChannelProvider

public abstract class AsynchronousChannelProvider extends Object
非同期チャネルのサービス・プロバイダ・クラスです。

非同期チャネル・プロバイダは、ゼロ引数コンストラクタを持ち、次の抽象メソッドを実装する、このクラスの具象サブクラスです。 指定されたJava仮想マシン呼出しは、providerメソッドによって返される、システム全体で単一のデフォルト・プロバイダ・インスタンスを保持します。 このメソッドの最初の呼出しは、次のデフォルト・プロバイダを検出します。

このクラス内のすべてのメソッドは、複数の並行スレッドで安全に使用できます。

導入されたバージョン:
1.7
  • コンストラクタの詳細

    • AsynchronousChannelProvider

      protected AsynchronousChannelProvider()
      このクラスの新しいインスタンスを初期化します。
      例外:
      SecurityException - セキュリティ・マネージャがインストールされており、それがRuntimePermission("asynchronousChannelProvider")を拒否した場合
  • メソッドの詳細

    • provider

      public static AsynchronousChannelProvider provider()
      このJava仮想マシン呼出しのためのシステム全体のデフォルト非同期チャネル・プロバイダを返します。

      このメソッドを最初に呼び出したとき、次の手順でデフォルト・プロバイダ・オブジェクトが検出されます。

      1. システム・プロパティjava.nio.channels.spi.AsynchronousChannelProviderが定義されている場合、具象プロバイダ・クラスの完全修飾名になります。 その後、クラスがロードされ、インスタンスが作成されます。

      2. システム・クラス・ローダーの認識するjarファイルにプロバイダ・クラスがインストールされていて、このjarファイルにリソース・ディレクトリMETA-INF/services内のプロバイダ構成ファイルjava.nio.channels.spi.AsynchronousChannelProviderが含まれている場合、そのファイルに指定されている最初のクラス名が使用されます。 その後、クラスがロードされ、インスタンスが作成されます。

      3. 最後に、上記の手段で指定されたプロバイダが存在しない場合は、システムのデフォルト・プロバイダ・クラスのインスタンスが作成され、結果が返されます。

      次回以降の呼出しでも、1回目の呼出し時に返されたプロバイダが返されます。

      戻り値:
      システム全体のデフォルトのAsynchronousChannelプロバイダ
    • openAsynchronousChannelGroup

      public abstract AsynchronousChannelGroup openAsynchronousChannelGroup(int nThreads, ThreadFactory threadFactory) throws IOException
      固定されたスレッド・プールで新しい非同期チャネル・グループを構築します。
      パラメータ:
      nThreads - プール内のスレッド数
      threadFactory - 新規スレッドの作成時に使用するファクトリ
      戻り値:
      新しい非同期チャネル・グループ
      例外:
      IllegalArgumentException - nThreads <= 0の場合:
      IOException - 入出力エラーが発生した場合
      関連項目:
    • openAsynchronousChannelGroup

      public abstract AsynchronousChannelGroup openAsynchronousChannelGroup(ExecutorService executor, int initialSize) throws IOException
      指定されたスレッド・プールで新しい非同期チャネル・グループを構築します。
      パラメータ:
      executor - スレッド・プール
      initialSize - >=0の値、実装固有のデフォルトの場合は負の値
      戻り値:
      新しい非同期チャネル・グループ
      例外:
      IOException - 入出力エラーが発生した場合
      関連項目:
    • openAsynchronousServerSocketChannel

      public abstract AsynchronousServerSocketChannel openAsynchronousServerSocketChannel(AsynchronousChannelGroup group) throws IOException
      非同期のサーバー・ソケット・チャネルを開きます。
      パラメータ:
      group - チャネルのバインド先のグループ、またはデフォルト・グループにバインドする場合はnull
      戻り値:
      新しいチャネル
      例外:
      IllegalChannelGroupException - グループを作成したプロバイダがこのプロバイダと異なる場合
      ShutdownChannelGroupException - グループがシャットダウンしている場合
      IOException - 入出力エラーが発生した場合
    • openAsynchronousSocketChannel

      public abstract AsynchronousSocketChannel openAsynchronousSocketChannel(AsynchronousChannelGroup group) throws IOException
      非同期のソケット・チャネルを開きます。
      パラメータ:
      group - チャネルのバインド先のグループ、またはデフォルト・グループにバインドする場合はnull
      戻り値:
      新しいチャネル
      例外:
      IllegalChannelGroupException - グループを作成したプロバイダがこのプロバイダと異なる場合
      ShutdownChannelGroupException - グループがシャットダウンしている場合
      IOException - 入出力エラーが発生した場合