public abstract class AbstractSelector extends Selector
このクラスは、選択操作の割り込みの実装に必要な低レベルの機構をカプセル化します。 具象セレクタ・クラスは、無期限にブロックされる可能性のある入出力操作の呼出し前にbeginメソッドを、呼出し後にendメソッドをそれぞれ呼び出す必要があります。 endメソッドが必ず呼び出されるように、try ... finallyブロック内でこれらのメソッドを使用するようにしてください。
try {
begin();
// Perform blocking I/O operation here
...
} finally {
end();
}
このクラスは、セレクタの取り消されたキー・セットを管理するメソッドや、チャネルのキー・セットからキーを削除するメソッドも定義します。また、実際にチャネルを登録するために選択可能チャネルのregisterメソッドによって呼び出される抽象registerメソッドを宣言します。
| 修飾子 | コンストラクタ | 説明 |
|---|---|---|
protected |
AbstractSelector(SelectorProvider provider) |
このクラスの新しいインスタンスを初期化します。
|
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
protected void |
begin() |
無期限にブロックされる入出力操作の開始をマークします。
|
protected Set<SelectionKey> |
cancelledKeys() |
このセレクタの取り消されたキー・セットを取得します。
|
void |
close() |
このセレクタをクローズします。
|
protected void |
deregister(AbstractSelectionKey key) |
チャネルのキー・セットから指定されたキーを削除します。
|
protected void |
end() |
無期限にブロックされる入出力操作の終了をマークします。
|
protected abstract void |
implCloseSelector() |
このセレクタをクローズします。
|
boolean |
isOpen() |
このセレクタの状態がオープンであるかどうかを判断します。
|
SelectorProvider |
provider() |
このチャネルの作成元プロバイダを返します。
|
protected abstract SelectionKey |
register(AbstractSelectableChannel ch, int ops, Object att) |
このセレクタに指定されたチャネルを登録します。
|
protected AbstractSelector(SelectorProvider provider)
provider - このセレクタの作成元プロバイダpublic final void close()
throws IOException
このセレクタがすでにクローズしている場合、このメソッドはただちに終了します。 それ以外の場合は、セレクタのクローズをマークしてから、クローズ操作を完了するためにimplCloseSelectorメソッドを呼び出します。
close、インタフェースCloseableclose、インタフェースAutoCloseableclose、クラスSelectorIOException - 入出力エラーが発生した場合protected abstract void implCloseSelector()
throws IOException
このメソッドは、セレクタをクローズする実際の処理を実行するためにcloseメソッドによって呼び出されます。 このメソッドは、セレクタがまだクローズされておらず、今後呼び出される可能性がない場合に限り呼び出されます。
このメソッドの実装は、このセレクタに対する選択操作でブロックされているほかのスレッドを、wakeupメソッドを呼び出した場合のようにただちに終了する必要があります。
IOException - セレクタのクローズ中に入出力エラーが発生した場合public final boolean isOpen()
Selectorpublic final SelectorProvider provider()
protected final Set<SelectionKey> cancelledKeys()
このセットは、同期化されている場合に限り使用可能です。
protected abstract SelectionKey register(AbstractSelectableChannel ch, int ops, Object att)
このメソッドは、このセレクタに実際にチャネルを登録するために、チャネルのregisterメソッドによって呼び出されます。
ch - 登録されるチャネルops - 有効な初期対象セットatt - 結果として得られるキーの初期添付protected final void deregister(AbstractSelectionKey key)
セレクタは、登録解除するチャネルごとにこのメソッドを呼び出す必要があります。
key - 削除される選択キーprotected final void begin()
protected final void end()
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。