- 所有超级接口:
-
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 错误
-