- 所有父级接口:
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 运算符进行测试。
- 自从:
- 1.4
-
方法总结
-
方法详情
-
close
关闭此通道。当前在此通道上的 I/O 操作中阻塞的任何线程都将收到
AsynchronousCloseException。此方法在其他方面的行为完全与
Channel接口指定的一样。- 指定者:
close在接口AutoCloseable中- 指定者:
close在接口Channel中- 指定者:
close在接口Closeable中- 抛出:
IOException- 如果发生 I/O 错误
-