Java NIO學習筆記(一)NIO概述

概述:

Java NIO是JDK1.4以後出現的新IO,它是同步的非阻塞IO,它是面向緩衝區的IO,之前學習過的老IO叫做BIO,是同步阻塞IO,面向流。
什麼是同步非阻塞呢?
阻塞其實說的是一種線程的狀態,在BIO中,當一次IO讀或者寫的時候,當前線程是處於一個阻塞的狀態,也就是當前線程不能幹其他事情,只能等待讀或者寫完成。而非阻塞IO就是當線程發送一個讀的命令之後,它會立即返回一個值,這個值可能爲空,也可能只有部分數據,非阻塞的好處就是線程不用等待本次IO徹底讀完,它可以去做其他的事情,這樣就提高了線程的利用效率。

NIO的組件:

在NIO中,主要有三個組成部分
1、Channels(通道) 2、Buffers(緩衝區) 3、Selectors(選擇器)
這裏的通道類似與BIO的流,NIO想讀取和寫入數據都是通過這個通道來完成的,但是通道又需要通過緩衝區,也就是說從通道里讀取的數據要放在緩衝區中,然後再從緩衝區中讀取出來,寫數據是先將數據寫入緩衝區,再將緩衝區的數據寫入通道之中。

Selector的作用主要是能讓單個線程通過它來連接多個通道。


12350543-cb0f1c53beaf1e4c.png
Selector示例
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章