|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.nio.channels.spi
类 AbstractSelector
java.lang.Object java.nio.channels.Selector java.nio.channels.spi.AbstractSelector
-
public abstract class AbstractSelector
- extends Selector
选择器的基本实现类。
此类封装了实现中断选择操作所需的低级别机制。在调用可能无限期阻塞的 I/O 操作之前和之后,具体的选择器类必须分别调用 begin
和 end
方法。为了确保始终能够调用 end
方法,应该在 try ... finally 块中使用这些方法:
try { begin(); // Perform blocking I/O operation here ... } finally { end(); }
此类还定义了用于维护选择器的已取消键集和从其通道的键集中移除键的方法,并且为了执行实际的通道注册工作,还声明了由可选择通道的 register
方法所调用的抽象 register
方法。
- 从以下版本开始:
- 1.4
构造方法摘要 | |
---|---|
protected |
AbstractSelector(SelectorProvider provider) 初始化此类的一个新实例。 |
方法摘要 | |
---|---|
protected void |
begin() 标记可能无限期阻塞的 I/O 操作的开始。 |
protected Set<SelectionKey> |
cancelledKeys() 检索此选择器的已取消键集。 |
void |
close() 关闭此选择器。 |
protected void |
deregister(AbstractSelectionKey key) 从其通道的键集中移除给定的键。 |
protected void |
end() 标记可能无限期阻塞的 I/O 操作的结束。 |
protected abstract void |
implCloseSelector() 关闭此选择器。 |
boolean |
isOpen() 告知此选择器是否已打开。 |
SelectorProvider |
provider() 返回创建此通道的提供程序。 |
protected abstract SelectionKey |
register(AbstractSelectableChannel ch, int ops, Object att) 向此选择器注册给定的通道。 |
从类 java.nio.channels.Selector 继承的方法 |
---|
keys, open, select, select, selectedKeys, selectNow, wakeup |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
AbstractSelector
protected AbstractSelector(SelectorProvider provider)
- 初始化此类的一个新实例。
方法详细信息 |
---|
close
public final void close() throws IOException
-
关闭此选择器。
如果已关闭该选择器,则此方法立即返回。否则它会将该选择器标记为已关闭,然后调用
implCloseSelector
方法以完成关闭操作。 -
- 抛出:
-
IOException
- 如果发生 I/O 错误
implCloseSelector
protected abstract void implCloseSelector() throws IOException
-
关闭此选择器。
为了实际关闭选择器,由
close
方法调用此方法。仅在尚未关闭此选择器时才能调用此方法,并且只能调用一次。此方法的实现必须安排阻塞于此选择器上选择操作中的所有其他线程立即返回,就像调用
wakeup
方法一样。 -
- 抛出:
-
IOException
- 如果关闭选择器的同时发生 I/O 错误
isOpen
public final boolean isOpen()
provider
public final SelectorProvider provider()
cancelledKeys
protected final Set<SelectionKey> cancelledKeys()
-
检索此选择器的已取消键集。
仅应在该键集上实现同步后才能使用它。
-
- 返回:
- 已取消键集
register
protected abstract SelectionKey register(AbstractSelectableChannel ch, int ops, Object att)
-
向此选择器注册给定的通道。
为了实际向此选择器注册通道,由该通道的
register
方法调用此方法。 -
- 参数:
-
ch
- 要注册的通道 -
ops
- 初始的相关操作集,必须是有效的 -
att
- 所得键的初始附件 - 返回:
- 表示给定通道向此选择器注册的新键
deregister
protected final void deregister(AbstractSelectionKey key)
-
从其通道的键集中移除给定的键。
必须由选择器为所注销的每个通道调用此方法。
-
- 参数:
-
key
- 要移除的选择键