public interface InterruptibleChannel
可被异步关闭和中断的通道。
实现此接口的通道是可异步关闭的:如果某个线程阻塞于可中断通道上的 I/O 操作中,则另一个线程可调用该通道的 close
方法。这将导致已阻塞线程接收到 AsynchronousCloseException
。
实现此接口的通道也是可中断的:如果某个线程阻塞于可中断通道上的 I/O 操作中,则另一个线程可调用该阻塞线程的 interrupt
方法。这将导致该通道被关闭,已阻塞线程接收到 ClosedByInterruptException
,并且设置已阻塞线程的中断状态。
如果已设置某个线程的中断状态并且它在通道上调用某个阻塞的 I/O 操作,则该通道将关闭并且该线程立即接收到 ClosedByInterruptException
;并仍然设置其中断状态。
当且仅当某个通道实现此接口时,该通道才支持异步关闭和中断。如有必要,可在运行时通过 instanceof 操作符进行测试。
方法摘要 | |
---|---|
void |
close() 关闭此通道。 |
从接口 java.nio.channels.Channel 继承的方法 |
---|
isOpen |
方法详细信息 |
---|
void close() throws IOException
所有当前阻塞于此通道上的 I/O 操作中的线程都将接收到 AsynchronousCloseException
。
此方法的行为与 Channel
接口所指定的行为完全相同。
IOException
- 如果发生 I/O 错误