Java NIO編程

基於Java NIO實現一個客戶端和服務端通信的一個流程 客戶端通過發送獲取當前時間的命令,服務端給出迴應。

Java的NIO編程 的確比Java阻塞的IO編程複雜很多 但是對性能的提高是很明顯的,今天就是想把JavaNIO熟悉一下以便後續的研究Netty,這樣會更好點.


服務端主函數:服務端邏輯代碼:客戶端主函數:客戶端邏輯代碼:

總結:

IO和NIO 也就是阻塞和非阻塞,那麼其實在我們實驗的過程中因爲條件的原因可能感受不到性能的差距,但是真正到了應用的場景,尤其是在併發量很高的情況下,那麼NIO的優勢也就體現出來了,其實不管是IO還是NIO java一般的讀取操作都是通過建立一個緩衝區 然後往緩衝區寫或者從緩衝區讀。因爲讀寫都是異步的,因爲異步是立馬返回,不管有沒有讀到數據,所以我們要根據讀的結果來進行相應的處理,如果返回值大於0那麼說明讀到了數據,所以就可以進行處理;如果返回值小於0,那麼說明對端已經關閉了連接,此時也就關閉連接,那麼先發起關閉連接的會有time_wait的狀態,會等待2個MSL時間,如果返回0那說明讀到了0個數據,可以不進行處理。

發佈了110 篇原創文章 · 獲贊 33 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章