クラスAbstractSelector

java.lang.Object
java.nio.channels.Selector
java.nio.channels.spi.AbstractSelector
すべての実装されたインタフェース:
Closeable, AutoCloseable

public abstract class AbstractSelector extends Selector
セレクタのベース実装クラスです。

このクラスは、選択操作の割り込みの実装に必要な低レベルの機構をカプセル化します。 具象セレクタ・クラスは、無期限にブロックされる可能性のある入出力操作の呼出し前にbeginメソッドを、呼出し後にendメソッドをそれぞれ呼び出す必要があります。 endメソッドが常に呼び出されるようにするには、次のメソッドをtry ... finallyブロック内で使用する必要があります:

    try {
        begin();
        // Perform blocking I/O operation here
        ...
    } finally {
        end();
    }

このクラスは、セレクタの取り消されたキー・セットを管理するメソッドや、チャネルのキー・セットからキーを削除するメソッドも定義します。また、実際にチャネルを登録するために選択可能チャネルのregisterメソッドによって呼び出される抽象registerメソッドを宣言します。

導入されたバージョン:
1.4
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    このクラスの新しいインスタンスを初期化します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected final void
    無期限にブロックされる入出力操作の開始をマークします。
    protected final Set<SelectionKey>
    このセレクタの取り消されたキー・セットを取得します。
    final void
    このセレクタをクローズします。
    protected final void
    チャネルのキー・セットから指定されたキーを削除します。
    protected final void
    end()
    無期限にブロックされる入出力操作の終了をマークします。
    protected abstract void
    このセレクタをクローズします。
    final boolean
    このセレクタの状態がオープンであるかどうかを判断します。
    このチャネルの作成元プロバイダを返します。
    protected abstract SelectionKey
    このセレクタに指定されたチャネルを登録します。

    クラスセレクタで宣言されたメソッド

    keys, open, select, select, select, select, selectedKeys, selectNow, selectNow, wakeup
    修飾子と型
    メソッド
    説明
    abstract Set<SelectionKey>
    このセレクタのキー・セットを返します。
    static Selector
    セレクタをオープンします。
    abstract int
    入出力操作の実行が可能な対応するチャネルを持つキー・セットを選択します。
    abstract int
    select(long timeout)
    入出力操作の実行が可能な対応するチャネルを持つキー・セットを選択します。
    int
    対応するチャネルがI/O操作の準備ができているキーに対して、アクションを選択および実行します。
    int
    select(Consumer<SelectionKey> action, long timeout)
    対応するチャネルがI/O操作の準備ができているキーに対して、アクションを選択および実行します。
    abstract Set<SelectionKey>
    このセレクタの選択されたキー・セットを返します。
    abstract int
    入出力操作の実行が可能な対応するチャネルを持つキー・セットを選択します。
    int
    対応するチャネルがI/O操作の準備ができているキーに対して、アクションを選択および実行します。
    abstract Selector
    まだ終了していない最初の選択操作をただちに終了させます。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • AbstractSelector

      protected AbstractSelector(SelectorProvider provider)
      このクラスの新しいインスタンスを初期化します。
      パラメータ:
      provider - このセレクタの作成元プロバイダ
  • メソッドの詳細

    • close

      public final void close() throws IOException
      このセレクタをクローズします。

      このセレクタがすでにクローズしている場合、このメソッドはただちに終了します。 それ以外の場合は、セレクタのクローズをマークしてから、クローズ操作を完了するためにimplCloseSelectorメソッドを呼び出します。

      定義:
      close、インタフェースAutoCloseable
      定義:
      close、インタフェースCloseable
      定義:
      close、クラスSelector
      スロー:
      IOException - 入出力エラーが発生した場合
    • implCloseSelector

      protected abstract void implCloseSelector() throws IOException
      このセレクタをクローズします。

      このメソッドは、セレクタをクローズする実際の処理を実行するためにcloseメソッドによって呼び出されます。 このメソッドは、セレクタがまだクローズされておらず、今後呼び出される可能性がない場合に限り呼び出されます。

      このメソッドの実装は、このセレクタに対する選択操作でブロックされているほかのスレッドを、wakeupメソッドを呼び出した場合のようにただちに終了する必要があります。

      スロー:
      IOException - セレクタのクローズ中に入出力エラーが発生した場合
    • isOpen

      public final boolean isOpen()
      クラスからコピーされた説明: Selector
      このセレクタの状態がオープンであるかどうかを判断します。
      定義:
      isOpen、クラスSelector
      戻り値:
      このセレクタがオープンしている場合のみtrue
    • provider

      public final SelectorProvider provider()
      このチャネルの作成元プロバイダを返します。
      定義:
      provider、クラスSelector
      戻り値:
      このチャネルの作成元プロバイダ
    • cancelledKeys

      protected final Set<SelectionKey> cancelledKeys()
      このセレクタの取り消されたキー・セットを取得します。

      このセットは、同期化されている場合に限り使用可能です。

      戻り値:
      取り消されたキー・セット
    • register

      protected abstract SelectionKey register(AbstractSelectableChannel ch, int ops, Object att)
      このセレクタに指定されたチャネルを登録します。

      このメソッドは、このセレクタに実際にチャネルを登録するために、チャネルのregisterメソッドによって呼び出されます。

      パラメータ:
      ch - 登録されるチャネル
      ops - 有効な初期対象セット
      att - 結果として得られるキーの初期添付
      戻り値:
      このセレクタに指定されたチャネルが登録されていることを示す新しいキー
    • deregister

      protected final void deregister(AbstractSelectionKey key)
      チャネルのキー・セットから指定されたキーを削除します。

      セレクタは、登録解除するチャネルごとにこのメソッドを呼び出す必要があります。

      パラメータ:
      key - 削除される選択キー
    • begin

      protected final void begin()
      無期限にブロックされる入出力操作の開始をマークします。

      このメソッドは、aboveに示すようにtry ... finallyブロックを使用してendメソッドと並行して起動し、このセレクタの中断を実装する必要があります。

      このメソッドを呼び出すと、セレクタに対する入出力操作でブロックされているスレッドのinterruptメソッドが呼び出された場合に、セレクタのwakeupメソッドが呼び出されます。

    • end

      protected final void end()
      無期限にブロックされる入出力操作の終了をマークします。

      このメソッドは、aboveに示すようにtry ... finallyブロックを使用してbeginメソッドと並行して起動し、このセレクタの中断を実装する必要があります。