天天看點

各種 IO | 學習筆記

開發者學堂課程【Java 面試疑難點串講1:面試技巧及語言基礎:各種 IO】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/24/detail/511

各種IO

内容介紹

一、什麼是異步 IO,和同步 I0 差別有哪些?

二、 BIO,NIO,AIO 實作差別

如果要進行圖形的使用者資訊輸入的時候會發現如果使用者不輸入資訊,則程式就進入到-種阻塞狀态,那麼這種阻塞的狀态一定是要在你輸入完成後才會解除,就成為同步 IO 。

阻塞狀态下執行;所謂的異步 IO 簡單一點來講在阻塞的時候其它的線程依然可以執行。BIO:同步阻塞 I0,就是傳統的操作實作模式,就是傳統的 I0 處理,像最基礎的InputStream;

二、 BIO,NIO,AIO實作差別

NIO :異步阻塞 I0:做一個零拷貝操作,正常的檔案操作是通過 CPU 向記憶體要資料,而後記憶體向硬碟要資料,而零阻塞指的是記憶體直接将讀取到的資料發送給用戶端,中間不再經過 CPU 處理,裡面重要的是一個 Channel;

AIO :異步非阻塞 IO;發出等待之後使用者就繼續向下執行了,完成後獲得一個通知。