Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class AbstractSelector extends Selector
Этот class инкапсулирует низкоуровневую машину, требуемую реализовывать прерывание операций выбора. Конкретный селекторный class должен вызвать Этот class также определяет методы для того, чтобы поддержать отмененный набор ключей селектора и для того, чтобы удалить ключ из набора ключей его канала, и объявляет краткий обзор begin
и end
методы прежде и после, соответственно, вызывая работу ввода-вывода, которая могла бы блокировать неопределенно. Чтобы гарантировать что end
метод всегда вызывается, эти методы должны использоваться в пределах try ... блок finally:
try {
begin();
// Perform blocking I/O operation here
...
} finally {
end();
}
register
метод, который вызывается выбираемым каналом register
метод, чтобы выполнить фактическую работу регистрации канала.
Модификатор | Конструктор и Описание |
---|---|
protected |
AbstractSelector(SelectorProvider provider)
Инициализирует новый экземпляр этого class.
|
Модификатор и Тип | Метод и Описание |
---|---|
protected void |
begin()
Отмечает начало работы ввода-вывода, которая могла бы блокировать неопределенно.
|
protected Set<SelectionKey> |
cancelledKeys()
Получает отмененный набор ключей этого селектора.
|
void |
close()
Завершения этот селектор.
|
protected void |
deregister(AbstractSelectionKey key)
Удаляет данный ключ из набора ключей его канала.
|
protected void |
end()
Отмечает конец работы ввода-вывода, которая могла бы блокировать неопределенно.
|
protected abstract void |
implCloseSelector()
Завершения этот селектор.
|
boolean |
isOpen()
Говорит, открыт ли этот селектор.
|
SelectorProvider |
provider()
Возвращает провайдера, который создал этот канал.
|
protected abstract SelectionKey |
register(AbstractSelectableChannel ch, int ops, Object att)
Регистрирует данный канал в этом селекторе.
|
protected AbstractSelector(SelectorProvider provider)
public final void close() throws IOException
Если селектор был уже закрыт тогда, этот метод сразу возвращается. Иначе это отмечает селектор как закрыто и затем вызывает implCloseSelector
метод, чтобы завершить операцию закрытия.
close
в интерфейсе Closeable
close
в интерфейсе AutoCloseable
close
в class Selector
IOException
- Если ошибка ввода-вывода происходитprotected abstract void implCloseSelector() throws IOException
Этот метод вызывается close
метод, чтобы выполнить фактическую работу закрытия селектора. Этот метод только вызывается, если селектор еще не был закрыт, и это никогда не вызывается не раз.
Реализация этого метода должна устроить любой другой поток, который блокируется в работе выбора на этот селектор, чтобы сразу возвратиться как будто, вызывая wakeup
метод.
IOException
- Если ошибка ввода-вывода происходит, закрывая селекторpublic final boolean isOpen()
Selector
public final SelectorProvider provider()
protected final Set<SelectionKey> cancelledKeys()
Этот набор должен только использоваться в то время как синхронизирующийся на это.
protected abstract SelectionKey register(AbstractSelectableChannel ch, int ops, Object att)
Этот метод вызывается каналом register
метод, чтобы выполнить фактическую работу регистрации канала с этим селектором.
ch
- Канал, который будет зарегистрированops
- Начальный набор интереса, который должен быть допустимымatt
- Начальное присоединение для получающегося ключаprotected final void deregister(AbstractSelectionKey key)
Этот метод должен быть вызван селектором для каждого канала, который это вычеркивает из списка.
key
- Ключ выбора, который будет удаленprotected final void begin()
Этот метод должен быть вызван в тандеме с end
метод, используя try ... блок finally как показано выше, чтобы реализовать прерывание для этого селектора.
Вызов этого метода устраивает селектор wakeup
метод, который будет вызван, если поток interrupt
метод вызывается, в то время как поток блокируется в работе ввода-вывода на селектор.
protected final void end()
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92