-
- Enclosing class:
- Channels
public static interface Channels.SelectableChannelCloser
用于协调关闭由readWriteSelectableChannel
创建的可选择通道的 对象 。- 从以下版本开始:
- 11
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 void
implCloseChannel(SelectableChannel sc)
关闭可选择的频道。void
implReleaseChannel(SelectableChannel sc)
释放文件描述符以及在注册一个或多个Selector
时关闭的可选通道的任何资源。
-
-
-
方法详细信息
-
implCloseChannel
void implCloseChannel(SelectableChannel sc) throws IOException
关闭可选择的频道。通道的close方法调用此方法,以执行关闭通道的实际工作。 仅当通道尚未关闭时才调用此方法,并且通道的close实现从不会多次调用此方法。
此方法的实现必须安排在通道上的I / O操作中阻塞的任何其他线程立即返回,通过抛出异常或通过正常返回。 如果通道为
registered
且带有一个或多个Selector
s,则在调用implReleaseChannel
方法之前,不应释放文件描述符 。- 参数
-
sc
- 可选择的频道 - 异常
-
IOException
- 如果在关闭文件描述符时发生I / O错误 - 另请参见:
-
AbstractInterruptibleChannel.implCloseChannel()
-
implReleaseChannel
void implReleaseChannel(SelectableChannel sc) throws IOException
释放文件描述符以及在注册一个或多个Selector
时关闭的可选通道的任何资源。此方法适用于
registered
具有一个或多个Selector
s时关闭通道的情况。 频道关闭后可能会保留一段时间。 当通道最终从其注册的最后一个Selector
取消注册时,将调用此方法。 它最多被调用一次。- API Note:
- 在选择器及其选定键集上同步时调用此方法。 必须非常小心,以避免与其他线程同时在这些对象上同步的死锁。
- 参数
-
sc
- 关闭的可选择频道 - 异常
-
IOException
- 如果发生I / O错误 - 另请参见:
-
AbstractSelector.deregister(java.nio.channels.spi.AbstractSelectionKey)
-
-