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