Spec-Zone.ru › OpenJDK 24

Класс AbstractSelectableChannel

java.lang.Object
java.nio.channels.spi.AbstractInterruptibleChannel
java.nio.channels.SelectableChannel
java.nio.channels.spi.AbstractSelectableChannel
Все реализованные интерфейсы:
Closeable, AutoCloseable, Channel, InterruptibleChannel
Прямые известные подклассы:
DatagramChannel, Pipe.SinkChannel, Pipe.SourceChannel, SctpChannel, SctpMultiChannel, SctpServerChannel, ServerSocketChannel, SocketChannel
public abstract class AbstractSelectableChannel extends SelectableChannel
Базовый реализующий класс для каналов, допускающих выбор.

Этот класс определяет методы, которые обрабатывают механику регистрации, дерегистрации и закрытия канала. Он сохраняет текущий режим блокировки этого канала, а также его текущий набор ключей выбора. Он выполняет всю необходимую синхронизацию для реализации спецификации SelectableChannel. Реализации защищенных абстрактных методов, определенных в этом классе, не нуждаются в синхронизации с другими потоками, которые могут участвовать в тех же операциях.

С:
1.4

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

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

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

Модификатор и тип Метод Описание
final Object blockingLock()
Возвращает объект, на котором синхронизируются методы configureBlocking и register.
final SelectableChannel configureBlocking(boolean block)
Изменяет режим блокировки этого канала.
protected final void implCloseChannel()
Закрывает этот канал.
protected abstract void implCloseSelectableChannel()
Закрывает этот канал, допускающий выбор.
protected abstract void implConfigureBlocking(boolean block)
Изменяет режим блокировки этого канала.
final boolean isBlocking()
Указывает, будут ли все операции ввода-вывода на этом канале блокироваться до завершения.
final boolean isRegistered()
Указывает, зарегистрирован ли этот канал в данный момент с каким-либо селекторами.
final SelectionKey keyFor(Selector sel)
Возвращает ключ, представляющий регистрацию канала с заданным селектором.
final SelectorProvider provider()
Возвращает поставщика, который создал этот канал.
final SelectionKey register(Selector sel, int ops, Object att)
Регистрирует этот канал с заданным селектором, возвращая ключ выбора.

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

register, validOps

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

begin, close, end, isOpen

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

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

Методы, объявленные в интерфейсе java.nio.channels.Channel

isOpen

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

AbstractSelectableChannel

protected AbstractSelectableChannel(SelectorProvider provider)
Инициализирует новый экземпляр этого класса.
Параметры:
provider - Поставщик, который создал этот канал

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

provider

public final SelectorProvider provider()
Возвращает поставщика, который создал этот канал.
Указано в:
provider в классе SelectableChannel
Возвращает:
Поставщик, который создал этот канал

isRegistered

public final boolean isRegistered()
Описание, скопированное из класса: SelectableChannel
Определяет, зарегистрирован ли этот канал в настоящее время с любыми селекторами. Недавно созданный канал не зарегистрирован.

Из-за неминуемой задержки между отменением ключа и разрегистрацией канала, канал может оставаться зарегистрированным в течение некоторого времени после того, как все его ключи были отменены. Канал также может оставаться зарегистрированным в течение некоторого времени после закрытия.

Указано в:
isRegistered в классе SelectableChannel
Возвращает:
true тогда и только тогда, когда этот канал зарегистрирован

keyFor

public final SelectionKey keyFor(Selector sel)
Описание, скопированное из класса: SelectableChannel
Извлекает ключ, представляющий регистрацию канала с заданным селектором.
Указано в:
keyFor в классе SelectableChannel
Параметры:
sel - Селектор
Возвращает:
Ключ, возвращённый при последней регистрации этого канала с заданным селектором, или null, если этот канал в данный момент не зарегистрирован с этим селектором

register

public final SelectionKey register(Selector sel, int ops, Object att) throws ClosedChannelException
Регистрирует этот канал с заданным селектором, возвращая ключ выбора.

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

Если этот канал уже зарегистрирован с заданным селектором, то ключ выбора, представляющий эту регистрацию, возвращается после установки его набора интересов на заданное значение.

В противном случае этот канал еще не зарегистрирован с заданным селектором, поэтому вызывается метод register селектора, удерживая соответствующие блокировки. Полученный ключ добавляется в набор ключей этого канала перед возвращением.

Указано в:
register в классе SelectableChannel
Параметры:
sel - Селектор, с которым должен быть зарегистрирован этот канал
ops - Набор интересов для полученного ключа
att - Привязка для полученного ключа; может быть null
Возвращает:
Ключ, представляющий регистрацию этого канала с заданным селектором
Исключения:
ClosedSelectorException - Если селектор закрыт
IllegalBlockingModeException - Если этот канал в режиме блокировки
IllegalSelectorException - Если этот канал не был создан тем же поставщиком, что и заданный селектор
CancelledKeyException - Если этот канал в данный момент зарегистрирован с данным селектором, но соответствующий ключ уже отменён
IllegalArgumentException - Если бит в наборе ops не соответствует операции, поддерживаемой этим каналом, то есть, если set & ~validOps() != 0
ClosedChannelException - Если этот канал закрыт

implCloseChannel

protected final void implCloseChannel() throws IOException
Закрывает этот канал.

Этот метод, указанный в классе AbstractInterruptibleChannel и вызываемый методом close, в свою очередь вызывает метод implCloseSelectableChannel, чтобы выполнить фактическую работу по закрытию этого канала. Затем он отменяет все ключи этого канала.

Указано в:
implCloseChannel в классе AbstractInterruptibleChannel
Исключения:
IOException - Если при закрытии канала произошла ошибка ввода-вывода

implCloseSelectableChannel

protected abstract void implCloseSelectableChannel() throws IOException
Закрывает этот селектируемый канал.

Этот метод вызывается методом close, чтобы выполнить фактическую работу по закрытию канала. Этот метод вызывается только в том случае, если канал еще не закрыт, и он никогда не вызывается более одного раза.

Реализация этого метода должна позаботиться о том, чтобы любая другая нить, заблокированная в операции ввода-вывода над этим каналом, вернулась немедленно, либо сбрасывая исключение, либо возвращаясь нормально.

Исключения:
IOException - Если произошла ошибка ввода-вывода

isBlocking

public final boolean isBlocking()
Описание, скопированное из класса: SelectableChannel
Определяет, будут ли все операции ввода-вывода на этом канале блокироваться до их завершения. Недавно созданный канал всегда находится в режиме блокировки.

Если этот канал закрыт, то возвращаемое значение этого метода не определено.

Указано в:
isBlocking в классе SelectableChannel
Возвращает:
true, если и только если этот канал находится в режиме блокировки

blockingLock

public final Object blockingLock()
Описание, скопированное из класса: SelectableChannel
Получает объект, на котором синхронизируются методы configureBlocking и register. Это часто бывает полезно при реализации адаптеров, которые требуют поддержания определённого режима блокировки в течение короткого промежутка времени.
Указано в:
blockingLock в классе SelectableChannel
Возвращает:
Объект блокировки режима блокировки

configureBlocking

public final SelectableChannel configureBlocking(boolean block) throws IOException
Изменяет режим блокировки этого канала.

Если заданный режим блокировки отличается от текущего режима блокировки, то этот метод вызывает метод implConfigureBlocking, удерживая соответствующие блокировки, для изменения режима.

Указано в:
configureBlocking в классе SelectableChannel
Параметры:
block - Если true, то этот канал будет переведен в режим блокировки; если false, то он будет переведен в режим без блокировки
Возвращает:
Этот селектируемый канал
Исключения:
ClosedChannelException - Если этот канал закрыт
IOException - Если произошла ошибка ввода-вывода

implConfigureBlocking

protected abstract void implConfigureBlocking(boolean block) throws IOException
Изменяет режим блокировки этого канала.

Этот метод вызывается методом configureBlocking для выполнения фактической работы по изменению режима блокировки. Этот метод вызывается только в том случае, если новый режим отличается от текущего.

Параметры:
block - Если true, то этот канал будет переведен в режим блокировки; если false, то он будет переведен в режим без блокировки
Исключения:
IOException - Если произошла ошибка ввода-вывода

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/nio/channels/spi/AbstractSelectableChannel.html

Spec-Zone.ru

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