|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class AbstractSelectableChannel extends SelectableChannel
Этот class определяет методы, которые обрабатывают механику регистрации канала, deregistration, и закрытия. Это поддерживает текущий режим блокирования этого канала так же как его текущий набор ключей выбора. Это выполняет всю синхронизацию, требуемую реализовывать SelectableChannel спецификация. Реализации краткого обзора, который защищенные методы, определенные в этом class, не должны синхронизировать против других потоков, которые могли бы быть заняты теми же самыми операциями.
| Модификатор | Конструктор и Описание |
|---|---|
protected |
AbstractSelectableChannel(SelectorProvider provider)
Инициализирует новый экземпляр этого class.
|
| Модификатор и Тип | Метод и Описание |
|---|---|
Объект |
blockingLock()
Получает объект на который
configureBlocking и register методы синхронизируются. |
SelectableChannel |
configureBlocking(boolean block)
Корректирует режим блокирования этого канала.
|
protected void |
implCloseChannel()
Завершения этот канал.
|
protected abstract void |
implCloseSelectableChannel()
Завершения этот выбираемый канал.
|
protected abstract void |
implConfigureBlocking(boolean block)
Корректирует режим блокирования этого канала.
|
boolean |
isBlocking()
Говорит, блокирует ли каждая работа ввода-вывода на этом канале, пока это не завершится.
|
boolean |
isRegistered()
Говорит, регистрируется ли этот канал в настоящий момент в каких-либо селекторах.
|
SelectionKey |
keyFor(Selector sel)
Получает ключ, представляющий регистрацию канала с данным селектором.
|
SelectorProvider |
provider()
Возвращает провайдера, который создал этот канал.
|
SelectionKey |
register(Selector sel, int ops, Object att)
Регистры этот канал с данным селектором, возвращая ключ выбора.
|
register, validOpsbegin, close, end, isOpenprotected AbstractSelectableChannel(SelectorProvider provider)
public final SelectorProvider provider()
provider в class SelectableChannelpublic final boolean isRegistered()
SelectableChannelИз-за свойственной задержки между ключевой отменой и каналом deregistration, канал может остаться зарегистрированным в течение некоторого времени после того, как все его ключи были отменены. Канал может также остаться зарегистрированным в течение некоторого времени после того, как он закрывается.
isRegistered в class SelectableChannelpublic final SelectionKey keyFor(Selector sel)
SelectableChannelkeyFor в class SelectableChannelpublic final SelectionKey register(Selector sel, int ops, Object att) throws ClosedChannelException
Этот метод сначала проверяет, что этот канал открыт и что данный начальный набор интереса допустим.
Если этот канал уже регистрируется в данном селекторе тогда ключевое представление выбора, что регистрация возвращается после установки ее набора интереса к данному значению.
Иначе этот канал еще не был зарегистрирован в данном селекторе, таким образом, register метод селектора вызывается, содержа соответствующие блокировки. Получающийся ключ добавляется к набору ключей этого канала прежде, чем быть возвращенным.
register в class SelectableChannelsel - Селектор, в котором должен быть зарегистрирован этот каналops - Интерес устанавливается для получающегося ключаatt - Присоединение для получающегося ключа; может быть nullClosedSelectorException - Если селектор закрываетсяIllegalBlockingModeException - Если этот канал находится в блокировании режимаIllegalSelectorException - Если этот канал не создавался тем же самым провайдером как данный селекторCancelledKeyException - Если этот канал в настоящий момент регистрируется в данном селекторе, но соответствующий ключ был уже отмененIllegalArgumentException - Если немного в наборе ops не соответствует работе, которая поддерживается этим каналом, то есть, если set & ~validOps() != 0ClosedChannelException - Если этот канал закрываетсяprotected final void implCloseChannel()
throws IOException
Этот метод, который определяется в AbstractInterruptibleChannel class и вызывается close метод, поочередно вызывает implCloseSelectableChannel метод, чтобы выполнить фактическую работу закрытия этого канала. Это тогда отменяет все ключи этого канала.
implCloseChannel в class AbstractInterruptibleChannelIOException - Если ошибка ввода-вывода происходит, закрывая каналprotected abstract void implCloseSelectableChannel()
throws IOException
Этот метод вызывается close метод, чтобы выполнить фактическую работу закрытия канала. Этот метод только вызывается, если канал еще не был закрыт, и это никогда не вызывается не раз.
Реализация этого метода должна устроить любой другой поток, который блокируется в работе ввода-вывода на этот канал, чтобы сразу возвратиться, или выдавая исключение или возвращаясь обычно.
IOExceptionpublic final boolean isBlocking()
SelectableChannelЕсли этот канал закрывается тогда, значение, возвращенное этим методом, не определяется.
isBlocking в class SelectableChannelpublic final Object blockingLock()
SelectableChannelconfigureBlocking и register методы синхронизируются. Это часто полезно в реализации адаптеров, которые требуют, чтобы определенный режим блокирования сохранялся в течение короткого периода времени. blockingLock в class SelectableChannelpublic final SelectableChannel configureBlocking(boolean block) throws IOException
Если данное блокирование режима отличается от текущего режима блокирования тогда, этот метод вызывает implConfigureBlocking метод, содержа соответствующие блокировки, чтобы изменить режим.
configureBlocking в class SelectableChannelblock - Если true тогда этот канал будет помещен в блокирование режима; если false тогда это будет помещено, неблокируя режимClosedChannelException - Если этот канал закрываетсяIOException - Если ошибка ввода-вывода происходитprotected abstract void implConfigureBlocking(boolean block)
throws IOException
Этот метод вызывается configureBlocking метод, чтобы выполнить фактическую работу изменения режима блокирования. Этот метод только вызывается, если новый режим отличается от текущего режима.
IOException - Если ошибка ввода-вывода происходит
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92