Spec-Zone.ru › OpenJDK 25

Класс 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)
Регистрирует этот канал в указанном селекторе и возвращает ключ выбора.

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

register, validOps

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

begin, close, end, isOpen

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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/AbstractSelectableChannel.html

Spec-Zone.ru

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