クラス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) このセレクタに指定されたチャネルを登録します。
-
コンストラクタの詳細
-
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
-