public interface AsynchronousChannel extends Channel
Future
操作(…)
无效操作(…一个附件,CompletionHandler
<V?超级A >处理程序)
CompletionHandler
消耗大量I/O操作的结果。
在第一种形式中,由Future
接口中定义的方法可以在操作完成后进行检查,等待它的完成,以及检索结果。第二种形式,一是消费CompletionHandler
调用I/O操作的结果,当它完成或失败。
一个通道,实现这个接口是异步闭合:如果一个I/O操作是优秀的渠道和渠道的close
方法被调用,则I/O操作失败,除了AsynchronousCloseException
。
异步通道是安全的,用于多个并发线程。某些信道实现可能支持并发读和写,但可能不允许多个读和一个写操作在任何给定的时间内是突出的。
接口定义的Future
取消执行cancel
方法。这会导致所有线程在等待I/O操作的结果把CancellationException
。底层的I / O操作是否可以被取消是高度实现的具体,因此没有指定。在消除叶片通道,或实体,它是连接,处于不一致的状态,然后放入一个特定实现的错误状态,防止进一步的尝试启动I/O操作,类似的的操作被取消的通道。例如,如果一个读操作被取消,但实施不能保证字节尚未从通道读取然后把通道进入错误状态;进一步尝试发起一个read
运营造成未运行时异常被抛出。同样,如果一个写操作被取消,但实施不能保证字节没有被写入随后试图发起一个write
将失败与指定的运行时异常的通道。
在cancel
方法设置为true
然后I/O操作可以通过关闭通道中断的mayInterruptIfRunning
参数调用。在这种情况下,所有的线程在等待I/O操作把CancellationException
和其他I/O操作突出通道上完成与例外AsynchronousCloseException
结果。
在cancel
方法被调用取消读取或写入操作,那么建议用于I/O操作的所有缓冲区被丢弃或注意确保缓冲区没有被访问而通道保持开放。
void close() throws IOException
任何优秀的异步操作在这个通道将完成除AsynchronousCloseException
。经过通道关闭,进一步尝试发起异步I/O操作完成,立即引起ClosedChannelException
。
本法另有行为完全由Channel
指定界面。
close
接口
AutoCloseable
close
接口
Channel
close
接口
Closeable
IOException
如果I/O错误发生
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.