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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java nio有哪些功能_如何真正理解java中的NIO?

發布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java nio有哪些功能_如何真正理解java中的NIO? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從歷史進程來看可能會比較好

早期計算機性能較差的情況下反正你同時也沒法同時處理很多io,不如開一個就阻塞在那邊,程序員編程也省事,別的花里胡哨的騷操作還未必有這種方式性能高,這個叫做bio

后面cpu內存性能上去了,磁盤還那樣,磁盤io成瓶頸了,就弄了新api出來,掃描出傳輸完畢數據就緒的io句柄進行操作,這里因為早期cpu核心數少,所以掃描出就緒的io句柄都是同步一個個執行的,這個叫nio

再后來,cpu核心數多了,發現這種按模式就是一核有難3核圍觀,就使用空間復雜度更高的實現方式把處理就緒io句柄異步分發到線程池里執行,這個叫做aio

同期,互聯網用戶的量上來了,然后網絡通信占用的連接數指數增加,然后發現linux最早提供的把所有io句柄放在一個list里scan就緒io句柄的實現在1w鏈接情況下因為o(n)時間復雜度變成了性能瓶頸,于是就提供了一個基于二叉樹實現的發現就緒句柄的api,叫做epoll

再后來,程序員把網絡這塊的性能反復挖掘,發現每次網絡io數據都要從網卡拷貝到操作系統,然后操作系統再拷貝到應用內,應用內自身可能又被反復拷貝來拷貝去做處理,于是就弄出來各種框架,有用于應用內零拷貝的封裝實現(netty的bytebuffer),有直接訪問操作系統數據的零拷貝實現(堆外內存映射),甚至有框架直接旁路了操作系統,在應用層直接訪問網卡數據(dpdk)

各種api基本上就是個填坑史

總結

以上是生活随笔為你收集整理的java nio有哪些功能_如何真正理解java中的NIO?的全部內容,希望文章能夠幫你解決所遇到的問題。

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