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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

netty 为什么用nio 不用 aio

發布時間:2024/4/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 netty 为什么用nio 不用 aio 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

NIO模型
同步非阻塞
NIO有同步阻塞和同步非阻塞兩種模式,一般講的是同步非阻塞,服務器實現模式為一個請求一個線程,但客戶端發送的連接請求都會注冊到多路復用器上,多路復用器輪詢到連接有I/O請求時才啟動一個線程進行處理。
AIO模型
異步非阻塞
服務器實現模式為一個有效請求一個線程,客戶端的I/O請求都是由OS先完成了再通知服務器應用去啟動線程進行處理,
注:AIO又稱為NIO2.0,在JDK7才開始支持。

為什么Netty使用NIO而不是AIO?

  • Netty不看重Windows上的使用,在Linux系統上,AIO的底層實現仍使用EPOLL,沒有很好實現AIO,因此在性能上沒有明顯的優勢,而且被JDK封裝了一層不容易深度優化
  • Netty整體架構是reactor模型, 而AIO是proactor模型, 混合在一起會非常混亂,把AIO也改造成reactor模型看起來是把epoll繞個彎又繞回來
  • AIO還有個缺點是接收數據需要預先分配緩存, 而不是NIO那種需要接收時才需要分配緩存, 所以對連接數量非常大但流量小的情況, 內存浪費很多
  • Linux上AIO不夠成熟,處理回調結果速度跟不到處理需求,比如外賣員太少,顧客太多,供不應求,造成處理速度有瓶頸(待驗證)
  • 作者原話:
    Not faster than NIO (epoll) on unix systems (which is true)
    There is no daragram suppport
    Unnecessary threading model (too much abstraction without usage)

    不比nio塊在Unix系統上

    不支持數據報

    不必要的線程模型(太多沒什么用的抽象化)

    ?

    ?

    ?

    轉載于:https://www.cnblogs.com/dzhou/p/10504442.html

    總結

    以上是生活随笔為你收集整理的netty 为什么用nio 不用 aio的全部內容,希望文章能夠幫你解決所遇到的問題。

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