Spec-Zone.ru › OpenJDK 21

Класс 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)
Регистрирует данный канал с этим селектором.

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

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 - Если при закрытии селектора произошла ошибка ввода-вывода

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

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

Spec-Zone.ru

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