模块  jdk.net
软件包  jdk.nio

Interface Channels.SelectableChannelCloser

    • 方法详细信息

      • 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)