public interface InterruptibleChannel
implements Channel
| java.nio.channels.InterruptibleChannel |
| |
可以异步关闭并中断的通道。
实现此接口的通道是异步关闭的:如果一个线程在可中断通道上的I / O操作中被阻塞,则另一个线程可能会调用通道的close方法。 这将导致被阻止的线程收到AsynchronousCloseException 。
实现此接口的通道也是可中断的:如果某个线程在可中断通道上的I / O操作中被阻塞,则另一个线程可能会调用被阻塞线程的方法interrupt 。 这将导致通道关闭,被阻塞的线程接收ClosedByInterruptException ,并且阻塞线程的中断状态被设置。
如果一个线程的中断状态已经被设置,并且它在一个通道上调用一个阻塞I / O操作,那么该通道将被关闭,并且线程将立即收到一个ClosedByInterruptException ; 其中断状态将保持设置。
一个通道支持异步关闭和中断,当且仅当它实现这个接口时。 如有必要,可以在运行时通过instanceof操作员对其进行测试。
公共方法(Public methods) |
|
|---|---|
abstract void |
close() 关闭此频道。 |
继承方法(Inherited methods) |
|
|---|---|
java.nio.channels.Channel
|
|
java.io.Closeable
|
|
java.lang.AutoCloseable
|
|
void close ()
关闭此频道。
在此通道上的I / O操作中当前阻塞的任何线程都将收到 AsynchronousCloseException 。
此方法的行为完全如 Channel接口所指定。
| 抛出异常(Throws) | |
|---|---|
IOException |
If an I/O error occurs |