java.lang.Object
java.nio.channels.Selector
java.nio.channels.spi.AbstractSelector
- 所有已实现的接口:
Closeable,AutoCloseable
选择器的基本实现类。
此类封装了实现选择操作中断所需的低级机制。具体的选择器类必须分别在调用可能无限期阻塞的 I/O 操作之前和之后调用 begin 和 end 方法。为了确保始终调用 end 方法,应在 try ... finally 块中使用这些方法:
try {
begin();
// Perform blocking I/O operation here
...
} finally {
end();
}
此类还定义了用于维护选择器的取消键集和从其通道的键集中删除键的方法,并声明了抽象的 register 方法,该方法由可选通道的 register 方法调用,以执行注册通道的实际工作.
- 自从:
- 1.4
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述protected final voidbegin()标记可能无限期阻塞的 I/O 操作的开始。protected final Set<SelectionKey>检索此选择器的取消键集。final voidclose()关闭此选择器。protected final void从其通道的密钥集中删除给定的密钥。protected final voidend()标记可能无限期阻塞的 I/O 操作的结束。protected abstract void关闭此选择器。final booleanisOpen()告知此选择器是否打开。final SelectorProviderprovider()返回创建此通道的提供者。protected abstract SelectionKeyregister(AbstractSelectableChannel ch, int ops, Object att) 使用此选择器注册给定的通道。
-
构造方法详细信息
-
AbstractSelector
初始化此类的新实例。- 参数:
provider- 创建此选择器的提供者
-
-
方法详情
-
close
关闭此选择器。如果选择器已经关闭,则此方法立即返回。否则它将选择器标记为已关闭,然后调用
implCloseSelector方法以完成关闭操作。- 指定者:
close在接口AutoCloseable中- 指定者:
close在接口Closeable中- 指定者:
close在类Selector中- 抛出:
IOException- 如果发生 I/O 错误
-
implCloseSelector
关闭此选择器。此方法由
close方法调用,以执行关闭选择器的实际工作。只有在选择器尚未关闭时才会调用此方法,并且永远不会调用多次。此方法的实现必须安排在此选择器上的选择操作中阻塞的任何其他线程立即返回,就像调用
wakeup方法一样。- 抛出:
IOException- 如果在关闭选择器时发生 I/O 错误
-
isOpen
public final boolean isOpen()从类复制的描述:Selector告知此选择器是否打开。 -
provider
返回创建此通道的提供者。 -
cancelledKeys
检索此选择器的取消键集。这个集合应该只在同步时使用。
- 返回:
- 取消键集
-
register
使用此选择器注册给定的通道。此方法由通道的
register方法调用,以执行使用此选择器注册通道的实际工作。- 参数:
ch- 要注册的通道ops- 初始利息集,必须有效att- 结果密钥的初始附件- 返回:
- 一个新键,代表给定通道向这个选择器的注册
-
deregister
从其通道的密钥集中删除给定的密钥。选择器必须为它注销的每个通道调用此方法。
- 参数:
key- 要删除的选择键
-
begin
protected final void begin() -
end
protected final void end()
-