クラスAbstractSelector
- すべての実装されたインタフェース:
Closeable, AutoCloseable
このクラスは、選択操作の割り込みの実装に必要な低レベルの機構をカプセル化します。 具象セレクタ・クラスは、無期限にブロックされる可能性のある入出力操作の呼出し前にbeginメソッドを、呼出し後にendメソッドをそれぞれ呼び出す必要があります。 endメソッドが常に呼び出されるようにするには、次のメソッドをtry ... finallyブロック内で使用する必要があります:
try {
begin();
// Perform blocking I/O operation here
...
} finally {
end();
}
このクラスは、セレクタの取り消されたキー・セットを管理するメソッドや、チャネルのキー・セットからキーを削除するメソッドも定義します。また、実際にチャネルを登録するために選択可能チャネルのregisterメソッドによって呼び出される抽象registerメソッドを宣言します。
- 導入されたバージョン:
- 1.4
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明protected final voidbegin()無期限にブロックされる入出力操作の開始をマークします。protected final Set<SelectionKey> このセレクタの取り消されたキー・セットを取得します。final voidclose()このセレクタをクローズします。protected final voidチャネルのキー・セットから指定されたキーを削除します。protected final voidend()無期限にブロックされる入出力操作の終了をマークします。protected abstract voidこのセレクタをクローズします。final booleanisOpen()このセレクタの状態がオープンであるかどうかを判断します。final SelectorProviderprovider()このチャネルの作成元プロバイダを返します。protected abstract SelectionKeyregister(AbstractSelectableChannel ch, int ops, Object att) このセレクタに指定されたチャネルを登録します。クラスセレクタで宣言されたメソッド
keys, open, select, select, select, select, selectedKeys, selectNow, selectNow, wakeup修飾子と型メソッド説明abstract Set<SelectionKey> keys()このセレクタのキー・セットを返します。static Selectoropen()セレクタをオープンします。abstract intselect()入出力操作の実行が可能な対応するチャネルを持つキー・セットを選択します。abstract intselect(long timeout) 入出力操作の実行が可能な対応するチャネルを持つキー・セットを選択します。intselect(Consumer<SelectionKey> action) 対応するチャネルがI/O操作の準備ができているキーに対して、アクションを選択および実行します。intselect(Consumer<SelectionKey> action, long timeout) 対応するチャネルがI/O操作の準備ができているキーに対して、アクションを選択および実行します。abstract Set<SelectionKey> このセレクタの選択されたキー・セットを返します。abstract int入出力操作の実行が可能な対応するチャネルを持つキー・セットを選択します。intselectNow(Consumer<SelectionKey> action) 対応するチャネルがI/O操作の準備ができているキーに対して、アクションを選択および実行します。abstract Selectorwakeup()まだ終了していない最初の選択操作をただちに終了させます。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(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
-
provider
public final SelectorProvider provider()このチャネルの作成元プロバイダを返します。 -
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
-
end
-