回覆列表
-
1 # 如水上善
-
2 # 程式猿開發日記
首先是作業系統的問題,目前Linux系統沒有完全實現AIO,而windows系統雖然對於AIO支援良好,但是我們程式通常執行在Linux主機上,所以對於AIO的使用並不是很頻繁。
其次Java AIO在不是以IO讀寫為核心的併發請求中,效率上並沒有比NIO出色,除非請求涉及到大量的IO操作,而我們更多的Java應用不是非常傾向IO操作。
最後對於網路通訊的程式設計,大多數的時候我們會選用現有的框架,比如Netty,而利用Java AIO中晦澀API去實現網路通訊,對於我們大多數非網路專業的人來說,是比較困難的。
AIO概念AIO:非同步非阻塞I/O,在我們請求到應用程式的時候,由應用程式向作業系統發起 I/O 請求(讀 / 寫)以後,不必等 I/O 完成,即可發起新的 I/O 請求。透過這種方法,可以提示提升 I/O 吞吐量和效能。
一個是JDK版本的原因,1.7之後才增加的。另外一個是Java語言的函數語言程式設計的普及。
另外,考慮到大部分程式設計師都在做CRUD的工作,AIO的使用領域在偏向於基礎軟體上,所以給人的感覺是很少用。