NIO總結與IO流的區別

NIO同步和異步的區別:

同步和異步都是基於應用程序和操作系統。

同步:應用程序直接參與IO讀寫,所以是阻塞的,需要等待IO完成。

異步:IO讀寫交給操作系統。非阻塞。

NIO(同步非阻塞):面向緩衝區,

IO:面向流,(阻塞的 浪費性能)

NIO:主要是通過selector選擇器管理所有的IO事件,服務端爲例:首先需要serverSoketChannel.open();獲得一個channel然後通過channel.configureBlocking(false);設置非阻塞再通過channel.socket();獲取一個Serversocket,然後通過bing()綁定端口,後打開選擇器 selector.open();通過channel.register(selector,key);註冊通道。後通過selector.select();監聽key.

IO流:字節流是讀到一個就返回一個,幾乎所有文件都可以讀取,字符流是隻能讀取字符,讀文本優先用字符流。

字節流(BufferedRead,BufferedWrite)

字符流(BufferedInputStream,BufferedOutStream)


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