java.nio.channels

接口
异常
所有超级接口:
Channel, Closeable
所有已知实现类:
AbstractInterruptibleChannel, AbstractSelectableChannel, DatagramChannel, FileChannel, Pipe.SinkChannel, Pipe.SourceChannel, SelectableChannel, ServerSocketChannel, SocketChannel

public interface InterruptibleChannel
     
extends Channel

可被异步关闭和中断的通道。

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

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

如果已设置某个线程的中断状态并且它在通道上调用某个阻塞的 I/O 操作,则该通道将关闭并且该线程立即接收到 ClosedByInterruptException;并仍然设置其中断状态。

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

从以下版本开始:
1.4

方法摘要
 void close()
          关闭此通道。
 
从接口 java.nio.channels.Channel 继承的方法
isOpen
 

方法详细信息

close

void close()
           throws IOException
关闭此通道。

所有当前阻塞于此通道上的 I/O 操作中的线程都将接收到 AsynchronousCloseException

此方法的行为与 Channel 接口所指定的行为完全相同。

指定者:
接口 Channel 中的 close
指定者:
接口 Closeable 中的 close
抛出:
IOException - 如果发生 I/O 错误