Spec-Zone.ru › OpenJDK 25

Класс 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

Краткое описание конструкторов

AbstractSelector(SelectorProvider provider)
Модификатор Конструктор Описание
protected
Инициализирует новый экземпляр этого класса.

Краткое описание методов

Модификатор и тип Метод Описание
protected final void begin()
Отмечает начало операции ввода-вывода, которая может заблокироваться на неопределённое время.
protected final Set<SelectionKey> cancelledKeys()
Возвращает набор отменённых ключей этого селектора.
final void close()
Закрывает этот селектор.
protected final void deregister(AbstractSelectionKey key)
Удаляет заданный ключ из набора ключей его канала.
protected final void end()
Отмечает окончание операции ввода-вывода, которая может заблокироваться на неопределённое время.
protected abstract void implCloseSelector()
Закрывает этот селектор.
final boolean isOpen()
Показывает, открыт ли этот селектор.
final SelectorProvider provider()
Возвращает провайдера, создавшего этот канал.
protected abstract SelectionKey register(AbstractSelectableChannel ch, int ops, Object att)
Регистрирует заданный канал в этом селекторе.

Методы, объявленные в классе Selector

keys, open, select, select, select, select, selectedKeys, selectNow, selectNow, wakeup

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

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()
Отмечает начало операции ввода-вывода, которая может заблокироваться на неопределённое время.

Этот метод следует вызывать вместе с методом end в блоке try ... finally, как показано выше, чтобы реализовать прерывание для этого селектора.

Вызов этого метода обеспечивает вызов метода wakeup селектора, если во время блокировки потока при выполнении операции ввода-вывода с селектором вызывается метод interrupt этого потока.

end

protected final void end()
Отмечает окончание операции ввода-вывода, которая может заблокироваться на неопределённое время.

Этот метод следует вызывать вместе с методом begin в блоке try ... finally, как показано выше, чтобы реализовать прерывание для этого селектора.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/channels/spi/AbstractSelector.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API