1. 程式人生 > 其它 >第三章—Java NIO程式設計:(9)AIO及三種IO對比

第三章—Java NIO程式設計:(9)AIO及三種IO對比

一、Java AIO 基本介紹

  1. JDK 7 引入了 Asynchronous I/O, 即 AIO。 在進行 I/O 程式設計中,常用到兩種模式:Reactor和 Proactor。Java 的 NIO 就是 Reactor,當有事件觸發時,伺服器端得到通知, 進行相應的處理。

  2. AIO 即 NIO2.0,叫做非同步不阻塞的 IO。AIO引入非同步通道的概念,採用了 Proactor 模式, 簡化了程式編寫, 有效的請求才啟動執行緒, 它的特點是先由作業系統完成後才通知服務端程式啟動執行緒去處理, 一般適用於連線數較多且連線時間較長的應用。

  3. 目前 AIO 還沒有廣泛應用, Netty 也是基於NIO, 而不是AIO, 因此我們就不詳解AIO了, 有興趣的可以參考 <<Java新一代網路程式設計模型AIO原理及Linux系統AIO介紹>> http://www.52im.net/thread-306-1-1.html

二、BIO、NIO、AIO 對比表

舉例說明

  1. 同步阻塞:到理髮店理髮,就一直等理髮師,直到輪到自己理髮。
  2. 同步非阻塞:到理髮店理髮,發現前面有其它人理髮,給理髮師說下, 先幹其他事情,一會過來看是否輪到自己.
  3. 非同步非阻塞: 給理髮師打電話,讓理髮師上門服務,自己幹其它事情,理髮師自己來家給你理髮