.()
从 中读取 数据并写到 中。返回写出的 数。
ByteChannel
并没有定义新的方法,它的作用只是把 0/ 和
= 合并在一起。
ScatteringByteChannel
继承了 0/ 并提供了同时往几个 中写数据的能力。
GatheringByteChannel
继承了 = 并提供了同时从几个 中读数据的能力。
InterruptibleChannel
用来表现一个可以被异步关闭的 。这表现在两方面:
>.### 当一个 的 ()方法被调用时,
其它 在这个 的 操作上的
线程会接收到一个 12。
?.### 当一个线程 在 的 操作上
时,另一个线程调用该线程的 ()方法会导致
被关闭,该线程收到一个
/12,同时线程的
状态会被设置。
接下来的这张 "#$ 类图描述了 中类的关系:
非阻塞 IO
非阻塞 的支持可以算是 中最重要的功能,非阻塞 允许应用程序同时监控多个
以提高性能,这一功能是通过 , 和 @ 这
个类来实现的。
代表了可以支持非阻塞 操作的 ,可以将其注册在
上,这种注册的关系由 @ 这个类来表现(见 "#$ 图)。 这个类通过
()函数,给应用程序提供了一个可以同时监控多个 的方法:
应用程序通过调用 ()函数,让 监控注册在其上的多个 ,
当有 的 操作可以进行时,()方法就会返回以让应用程序检查 的状
态,并作相应的处理。