|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.nio.channels.spi
类 AbstractSelectableChannel
java.lang.Object java.nio.channels.spi.AbstractInterruptibleChannel java.nio.channels.SelectableChannel java.nio.channels.spi.AbstractSelectableChannel
- 所有已实现的接口:
- Closeable, Channel, InterruptibleChannel
-
public abstract class AbstractSelectableChannel
- extends SelectableChannel
可选择通道的基本实现类。
此类定义了处理通道注册、注销和关闭机制的各种方法。它会维持此通道的当前阻塞模式及其当前的选择键集。它执行实现 SelectableChannel
规范所需的所有同步。此类中所定义的抽象保护方法的实现不必与同一操作中使用的其他线程同步。
- 从以下版本开始:
- 1.4
构造方法摘要 | |
---|---|
protected |
AbstractSelectableChannel(SelectorProvider provider) 初始化此类的一个新实例。 |
方法摘要 | |
---|---|
Object |
blockingLock() 检索其 configureBlocking 和 register 方法实现同步的对象。 |
SelectableChannel |
configureBlocking(boolean block) 调整此通道的阻塞模式。 |
protected void |
implCloseChannel() 关闭此通道。 |
protected abstract void |
implCloseSelectableChannel() 关闭此可选择通道。 |
protected abstract void |
implConfigureBlocking(boolean block) 调整此通道的阻塞模式。 |
boolean |
isBlocking() 判断此通道上的每个 I/O 操作在完成前是否被阻塞。 |
boolean |
isRegistered() 判断此通道当前是否已向任何选择器注册。 |
SelectionKey |
keyFor(Selector sel) 检索表示通道向给定选择器注册的键。 |
SelectorProvider |
provider() 返回创建此通道的提供程序。 |
SelectionKey |
register(Selector sel, int ops, Object att) 向给定的选择器注册此通道,返回一个选择键。 |
从类 java.nio.channels.SelectableChannel 继承的方法 |
---|
register, validOps |
从类 java.nio.channels.spi.AbstractInterruptibleChannel 继承的方法 |
---|
begin, close, end, isOpen |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从接口 java.nio.channels.Channel 继承的方法 |
---|
close, isOpen |
构造方法详细信息 |
---|
AbstractSelectableChannel
protected AbstractSelectableChannel(SelectorProvider provider)
- 初始化此类的一个新实例。
方法详细信息 |
---|
provider
public final SelectorProvider provider()
- 返回创建此通道的提供程序。
-
- 指定者:
-
类
SelectableChannel
中的provider
-
- 返回:
- 创建此通道的提供程序
isRegistered
public final boolean isRegistered()
-
从类
SelectableChannel
复制的描述 -
判断此通道当前是否已向任何选择器注册。新创建的通道总是未注册的。
由于键取消和通道注销之间固有的延迟,所以在已取消某个通道的所有键后,该通道可能在一定时间内还会保持已注册状态。关闭通道后,该通道可能在一定时间内还会保持已注册状态。
-
- 指定者:
-
类
SelectableChannel
中的isRegistered
-
- 返回:
- 当且仅当此通道为已注册时才返回 true
keyFor
public final SelectionKey keyFor(Selector sel)
-
从类
SelectableChannel
复制的描述 - 检索表示通道向给定选择器注册的键。
-
- 指定者:
-
类
SelectableChannel
中的keyFor
-
- 返回:
- 当此通道是向给定选择器注册的最后一个通道时返回该键,如果此通道当前未向该选择器注册,则返回 null
register
public final SelectionKey register(Selector sel, int ops, Object att) throws ClosedChannelException
-
向给定的选择器注册此通道,返回一个选择键。
此方法首先验证此通道是否已打开,以及给定的初始相关操作集是否有效。
如果已向给定的选择器注册了此通道,则在将其相关操作集设置为给定值后,返回表示该注册的选择键。
如果尚未向给定的选择器注册此通道,则在保持适当锁定的同时调用选择器的
register
方法。返回前将得到的键添加到此通道的键集中。 -
- 指定者:
-
类
SelectableChannel
中的register
-
- 参数:
-
sel
- 要向其注册此通道的选择器 -
ops
- 所得键的可用操作集 -
att
- 所得键的附件,可能为 null - 返回:
- 表示此通道向给定选择器注册的键
- 抛出:
-
ClosedChannelException
- 如果此通道已关闭
implCloseChannel
protected final void implCloseChannel() throws IOException
-
关闭此通道。
此方法在
AbstractInterruptibleChannel
类中指定并且由close
方法调用,为了实际关闭此通道,此方法依次调用implCloseSelectableChannel
方法。然后取消此通道的所有键。 -
- 指定者:
-
类
AbstractInterruptibleChannel
中的implCloseChannel
-
- 抛出:
-
IOException
- 如果关闭通道的同时发生 I/O 错误
implCloseSelectableChannel
protected abstract void implCloseSelectableChannel() throws IOException
-
关闭此可选择通道。
为了实际关闭此通道,由
close
方法调用此方法。仅在此通道尚未关闭时才能调用此方法,并且只能调用一次。此方法的实现必须安排阻塞于此通道上 I/O 操作中的所有其他线程立即返回,要么抛出异常,要么正常返回。
-
- 抛出:
-
IOException
isBlocking
public final boolean isBlocking()
-
从类
SelectableChannel
复制的描述 -
判断此通道上的每个 I/O 操作在完成前是否被阻塞。新创建的通道总是处于阻塞模式。
如果此通道已关闭,则此方法返回的值是未指定的。
-
- 指定者:
-
类
SelectableChannel
中的isBlocking
-
- 返回:
- 当且仅当此通道处于阻塞模式时才返回 true