模块  java.base
软件包  java.nio.channels.spi

Class AbstractSelectableChannel

    • 构造方法详细信息

      • AbstractSelectableChannel

        protected AbstractSelectableChannel​(SelectorProvider provider)
        初始化此类的新实例。
        参数
        provider - 创建此频道的提供商
    • 方法详细信息

      • register

        public final SelectionKey register​(Selector sel,
                                           int ops,
                                           Object att)
                                    throws ClosedChannelException
        使用给定的选择器注册此通道,返回选择键。

        此方法首先验证此通道是否已打开,以及给定的初始兴趣集是否有效。

        如果此通道已在给定选择器中注册,则在将其兴趣设置为给定值后,将返回表示该注册的选择键。

        否则,此通道尚未在给定选择器中注册,因此在保持适当锁定的同时调用选择器的register方法。 返回后,生成的密钥将添加到此通道的密钥集中。

        Specified by:
        register在类 SelectableChannel
        参数
        sel - 要注册此通道的选择器
        ops - 为结果密钥设置的兴趣
        att - 结果密钥的附件; 可能是null
        结果
        表示使用给定选择器注册此通道的键
        异常
        ClosedSelectorException - 如果选择器已关闭
        IllegalBlockingModeException - 如果此通道处于阻止模式
        IllegalSelectorException - 如果此通道不是由与给定选择器相同的提供程序创建的
        CancelledKeyException - 如果此通道当前已在给定选择器中注册,但相应的键已被取消
        IllegalArgumentException - 如果 ops集中的某个位与此通道支持的操作不对应,即 set & ~validOps() != 0
        ClosedChannelException - 如果此频道已关闭
      • implCloseSelectableChannel

        protected abstract void implCloseSelectableChannel()
                                                    throws IOException
        关闭此可选择的频道。

        close方法调用此方法以执行关闭通道的实际工作。 仅当通道尚未关闭时才会调用此方法,并且永远不会多次调用此方法。

        此方法的实现必须安排在此通道上的I / O操作中阻塞的任何其他线程立即返回,方法是抛出异常或正常返回。

        异常
        IOException - 如果发生I / O错误
      • configureBlocking

        public final SelectableChannel configureBlocking​(boolean block)
                                                  throws IOException
        调整此通道的阻止模式。

        如果给定的阻塞模式与当前阻塞模式不同,则此方法调用implConfigureBlocking方法,同时保持适当的锁定,以便更改模式。

        Specified by:
        configureBlocking在类 SelectableChannel
        参数
        block - 如果true则此通道将被置于阻塞模式; 如果false那么它将被置于非阻塞模式
        结果
        这个可选择的频道
        异常
        ClosedChannelException - 如果此渠道已关闭
        IOException - 如果发生I / O错误
      • implConfigureBlocking

        protected abstract void implConfigureBlocking​(boolean block)
                                               throws IOException
        调整此通道的阻止模式。

        configureBlocking方法调用此方法以执行更改阻止模式的实际工作。 仅当新模式与当前模式不同时,才会调用此方法。

        参数
        block - 如果true则此通道将被置于阻塞模式; 如果false那么它将被置于非阻塞模式
        异常
        IOException - 如果发生I / O错误