Module java.base

Interface 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运算符在运行时进行测试。

自 JDK 版本:
1.4
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    close()
    关闭此通道。

    Methods declared in interface java.nio.channels.Channel

    isOpen