java之BIO NIO AIO

Java網絡編程模型

java之BIO NIO AIO

  1. BIO同步阻塞IO模型:數據的讀取寫入必須阻塞在一個線程內等待其完成。

  2. NIO同步非阻塞I/O模型

    • 定義:同步非阻塞,服務實現模式是一個線程可以處理多個連接,即客戶端發送的連接都會註冊到多路複用器上,然後進行輪詢連接,有I/O請求就處理。

    • 三大核心內容:Selector(選擇器)、Channel(通道)、Buffer(緩衝區)。

    • selector:用於監聽多個Channel的事件,並對檢測到的I/O事件進行相應的響應和處理。

    • Channel:雙向的,既可以進行讀操作,也可以進行寫操作。

    • Buffer:本質是個容器、其內部通過一個連續的字節數組存儲I/O上的數據。

  3. AIO異步非阻塞I/O模型:AIO 也就是 NIO 2,在 Java 7 中引⼊了 NIO 的改進版 NIO 2,它 是異步⾮阻塞的 IO 模型。異步 IO 是基於事件和回調機制實現的,也就是應⽤操作之後會直 接返回,不會堵塞在那⾥,當後臺處理完成,操作系統會通知相應的線程進⾏後續的操作

BIO NIO AIO
IO模型 同步阻塞 同步非阻塞(多路複用) 異步非阻塞
面向流(Stream) 面向緩衝區塊(Buffer)【效率:塊》流】
應用場景 適用連接數目比較小且固定的架構,對服務器要求比較高,併發侷限於應用中 適用連接數目多且連接比較短的架構,如:聊天服務器,彈幕系統等,編程比較複雜 適用連接數目多且連接長的架構,如相冊服務器
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章