Класс 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 AbstractSelector​(SelectorProvider provider)

Инициализирует новый экземпляр этого класса.

Методы

Модификатор и тип Метод Описание
protected void begin()

Помечает начало операции ввода/вывода, которая может блокироваться неопределённо долго.

protected Set<SelectionKey> cancelledKeys()

Возвращает набор отменённых ключей этого селектора.

void close()

Закрывает этот селектор.

protected void deregister​(AbstractSelectionKey key)

Удаляет указанный ключ из набора ключей канала.

protected void end()

Помечает конец операции ввода/вывода, которая может блокироваться неопределённо долго.

protected abstract void implCloseSelector()

Закрывает этот селектор.

SelectorProvider provider()

Возвращает поставщика, который создал этот канал.

protected abstract SelectionKey register​(AbstractSelectableChannel ch, int ops, Object att)

Регистрирует заданный канал с этим селектором.

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

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

Методы, объявленные в классе java.lang.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 - Если при закрытии селектора произошла ошибка ввода/вывода

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, как показано выше, для реализации прерывания для этого селектора.

© 1993, 2020, 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/11/docs/api/java.base/java/nio/channels/spi/AbstractSelector.html

Spec-Zone .ru
спецификации, руководства, описания, API