日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

BIO、NIO、AIO的区别——Netty系列(一)

發布時間:2024/4/14 ChatGpt 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BIO、NIO、AIO的区别——Netty系列(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?Netty是一個提供異步事件驅動的網絡應用框架,用以快速開發高性能、高可靠性的網絡服務器和客戶端程序。換句話說,Netty是一個NIO框架,使用它可以簡單快速地開發網絡應用程序,比如客戶端和服務端的協議。這是官方文檔中的描述,作為Java初學者,這里面一個名詞NIO是完全沒有概念,為此專門查閱了相關資料,對NIO有了較為清晰的了解。

? ? ? ? 對于NIO的描述,通常都是和BIO、AIO進行對比說明的。下面將分別說明三者的概念。

? ? ? ? BIO:?同步并阻塞,服務器實現模式為一個連接一個線程,即客戶端有連接請求時服務器端就需要啟動一個線程進行處理(一客戶端一線程)。該模型最大的問題就是缺乏彈性伸縮能力,當客戶端并發訪問量增加后,服務端的線程數與客戶端并發訪問數呈1:1的關系,系統性能將急劇下降,隨著并發訪問量的繼續增加,系統會發生線程堆棧溢出、創建新線程失敗等問題,并最終導致宕機或僵死。

?

? ? ? ? NIO:異步非阻塞,服務器實現模式為一個請求一個線程,客戶端發送的連接請求都會注冊到多路復用器上,多路復用器輪詢到連接有I/O請求時才啟動一個線程進行處理。

對于NIO,有兩點需要強調的:

? ? ? (1)關于概念有兩種理解,New I/O(相對于之前的I/O庫是新增的)和Non-block I/O(非阻塞的)。由于NIO的目標就是讓java支持非阻塞I/O,所有更多人喜歡用Non-block I/O。

? ? ? (2)很多人喜歡將NIO稱為異步非阻塞I/O,但是,如果按照嚴格的NUIX網絡編程模型和JDK的實現進行區分,實際上它只是非阻塞I/O,不能稱之為異步非阻塞I/O。但由于NIO庫支持非阻塞讀和寫,相對于之前的同步阻塞讀和寫,它是異步的,因此很多人習慣稱NIO為異步非阻塞I/O。

?

? ? ? ?AIO:JDK1.7升級了NIO庫,升級后的NIO庫被稱為NIO2.0,正式引入了異步通道的概念。NIO2.0的異步套接字通道是真正的異步非阻塞I/O,此即AIO。其服務器實現模式為一個有效請求一個線程,客戶端的I/O請求都是由OS先完成了再通知服務器應用去啟動線程進行處理。

總結

以上是生活随笔為你收集整理的BIO、NIO、AIO的区别——Netty系列(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。