目录

NIO(一、概述)
NIO(二、Buffer)
NIO(三、Channel)

Channel

上文说了描述了Buffer的实现机制,那么这个章节就主要描述数据是如何进入缓冲区的,并且又是如何从缓冲区流出的。

类图纵览及核心类概述

Android培训,安卓培训,手机开发培训,移动开发培训,云培训培训

  这张图只是简单概括了Channel的类图,当然,Channel的设计远比这个更复杂:例如SelectableChannel还有SocketChannel和ServerSocketChannel的实现,NetworkChannel继承Channel并抽象了更多的方法;例如FileChannel,除了继承AbstractInterruptibleChannel之外,还实现了GatheringByteChannel和ScatteringByteChannel接口。

  • Channel
      我们可以看到,Channel接口本身定义了 close() 和 isOpen() 方法,在继承Channel的接口中,又分别抽象了读通道(ReadableByteChannel)、写通道(WritableByteChannel)及可中断的异步通道(InterruptibleChannel)接口。读写通道自然不必说,下文也会有介绍。

  • InterruptibleChannel
      这里说下InterruptibleChannel,这是一个可以被中断的异步通道,继承了 close() 方法。当一个线程在I/O被阻塞时,另一个线程执行了close()方法,那么阻塞的线程会抛出&nb

    网友评论