模块 java.base

接口 InterruptibleChannel

所有父级接口:
AutoCloseable , Channel , Closeable
所有已知的实现类:
AbstractInterruptibleChannel , AbstractSelectableChannel , DatagramChannel , FileChannel , Pipe.SinkChannel , Pipe.SourceChannel , SctpChannel , SctpMultiChannel , SctpServerChannel , SelectableChannel , ServerSocketChannel , SocketChannel

public interface InterruptibleChannel extends Channel
可以异步关闭和中断的通道。

实现此接口的通道是异步关闭:如果线程在可中断通道上的 I/O 操作中被阻塞,则另一个线程可以调用通道的 close 方法。这将导致被阻塞的线程接收到一个 AsynchronousCloseException

实现此接口的通道也是可中断:如果线程在可中断通道上的 I/O 操作中被阻塞,则另一个线程可能会调用被阻塞线程的 interrupt 方法。这将导致通道关闭,被阻塞的线程接收到 ClosedByInterruptException ,并设置被阻塞线程的中断状态。

如果一个线程的中断状态已经被设置并且它在一个通道上调用一个阻塞 I/O 操作然后通道将被关闭并且线程将立即收到一个 ClosedByInterruptException ;它的中断状态将保持设置。

当且仅当实现此接口时,通道才支持异步关闭和中断。如有必要,这可以在运行时通过 instanceof 运算符进行测试。

自从:
1.4
  • 方法总结

    修饰符和类型
    方法
    描述
    void
    关闭此通道。

    在接口 java.nio.channels.Channel 中声明的方法

    isOpen