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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

JAVA minaio模型_分布式系统之Java IO模型

發布時間:2025/3/11 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA minaio模型_分布式系统之Java IO模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.正確理解IO定義

IO涉及兩個系統對象,一個是用戶進程,一個是系統內核

阻塞IO和非阻塞IO 針對是對用戶進程來講的調用函數。

同步IO和異步IO針對的是系統內核。

select,poll,epoll是Linux系統使用最多的IO多路復用機制,采用的都是同步IO。

IO讀取過程

2.Java IO

BIO/NIO/AIO

BIO

BIO 使用簡單,適用于連接數少并發不高的場景(因為服務端線程數量和客戶端訪問數成正比,很容易膨脹,耗盡資源,可以通過線程池做一定的優化,但本質上還是受資源限制明顯)。

NIO JDK1.4 引入,從最初的select/poll,到1.5增加了對epoll的支持。

NIO 里面幾個核心概念

Buffer(數據操作的對象),Channel(可同時讀寫操作,代替BIO每次訪問建立的線程,降低資源消耗),Selector(channel的注冊,監聽,輪詢;一個selector可以管理成百上千個 channel,而Selector只是一個線程)。

參考

NIO Reactor模式

數據讀取流程

1.Selector阻塞并等待事件發生。

2.Selector被喚醒,發送讀就緒事件給預先注冊的事件處理器

3.應用程序讀取數據

4.應用程序處理相關業務邏輯

Selecor是NIO的關鍵,NIO采用的是非阻塞IO模型。原生Java接口開發網絡應用中使用最多的。

NIO的實現框架 Netty,Mina.Netty在內存管理和綜合性能上更勝一籌。Netty內部通過封裝 Java NIO實現了零拷貝的功能(不用將數據復制到用戶進程,直接發送到網絡)。

AIO 采用Proactor模式

與NIO模式類似,只是AIO 是由操作系統執行完讀寫后,通知回調方法,由回調方法處理業務邏輯。其采用的是異步 IO。

有兩種使用方式

1.使用java.util.concurrent.future訪問,通過get獲取結果,本質上還是同步,不推薦

回調方式,通過java.nio.channels.CompletionHandler的completed和failed回調方法,應用開發者可以覆蓋實現自己的業務邏輯

總結

以上是生活随笔為你收集整理的JAVA minaio模型_分布式系统之Java IO模型的全部內容,希望文章能夠幫你解決所遇到的問題。

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