- 所有超级接口:
-
AutoCloseable,Channel,Closeable
- 所有已知实现类:
-
AbstractInterruptibleChannel,AbstractSelectableChannel,DatagramChannel,FileChannel,Pipe.SinkChannel,Pipe.SourceChannel,SctpChannel,SctpMultiChannel,SctpServerChannel,SelectableChannel,ServerSocketChannel,SocketChannel
一个可以异步关闭和中断的通道。
实现此接口的通道是异步可关闭的: 如果一个线程在可中断通道上的I/O操作中被阻塞,那么另一个线程可以调用通道的close方法。这将导致被阻塞的线程收到一个AsynchronousCloseException。
实现此接口的通道也是可中断的: 如果一个线程在可中断通道上的I/O操作中被阻塞,那么另一个线程可以调用被阻塞线程的interrupt方法。这将导致通道被关闭,被阻塞的线程收到一个ClosedByInterruptException,并且被阻塞的线程的中断状态被设置。
如果一个线程的中断状态已经被设置,并且它在通道上调用了一个阻塞的I/O操作,那么通道将被关闭,线程将立即收到一个ClosedByInterruptException;它的中断状态将保持设置。
只有当通道实现了此接口时,通道才支持异步关闭和中断。必要时,可以通过instanceof运算符在运行时进行测试。
- 自 JDK 版本:
- 1.4
-
Method Summary
-
Method Details
-
close
关闭此通道。当前在此通道上的I/O操作中被阻塞的任何线程将收到一个
AsynchronousCloseException。此方法的行为与
Channel接口指定的完全一致。- 指定者:
-
close在接口AutoCloseable中 - 指定者:
-
close在接口Channel中 - 指定者:
-
close在接口Closeable中 - 抛出:
-
IOException- 如果发生 I/O 错误
-