目錄

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

Channel

上文說了描述了Buffer的實現(xiàn)機制,那么這個章節(jié)就主要描述數(shù)據(jù)是如何進入緩沖區(qū)的,并且又是如何從緩沖區(qū)流出的。

類圖縱覽及核心類概述

Android培訓,安卓培訓,手機開發(fā)培訓,移動開發(fā)培訓,云培訓培訓

  這張圖只是簡單概括了Channel的類圖,當然,Channel的設計遠比這個更復雜:例如SelectableChannel還有SocketChannel和ServerSocketChannel的實現(xiàn),NetworkChannel繼承Channel并抽象了更多的方法;例如FileChannel,除了繼承AbstractInterruptibleChannel之外,還實現(xiàn)了GatheringByteChannel和ScatteringByteChannel接口。

  • Channel
      我們可以看到,Channel接口本身定義了 close() 和 isOpen() 方法,在繼承Channel的接口中,又分別抽象了讀通道(ReadableByteChannel)、寫通道(WritableByteChannel)及可中斷的異步通道(InterruptibleChannel)接口。讀寫通道自然不必說,下文也會有介紹。

  • InterruptibleChannel
      這里說下InterruptibleChannel,這是一個可以被中斷的異步通道,繼承了 close() 方法。當一個線程在I/O被阻塞時,另一個線程執(zhí)行了close()方法,那么阻塞的線程會拋出&nb

    網(wǎng)友評論