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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

无招胜有招之NIO

發布時間:2024/2/28 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 无招胜有招之NIO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

  • 用戶空間和內核空間

Linux系統將自身劃分為兩部分,一部分為核心軟件,即是kernel,也稱作內核空間,另一部分為普通應用程序,這部分稱為用戶空間。

我比較喜歡的一種解釋話語:計算機硬件由運算器、控制器、存儲器、輸入輸出設備等設備組成,而能讓機箱中各種設備各司其職的東西叫做系統內核。內核負責驅動硬件,管理活動和分配管理硬件資源,所以它不能直接讓用戶操作。

因為用戶不能直接控制硬件,也不能直接操作內核,于是便需要基于“系統調用接口”開發出的程序服務來滿足用戶日常工作。

?

  • BIO.NIO.AIO

BIO:同步阻塞式IO,服務器實現模式為一個連接一個線程,即客戶端有連接請求時服務器端就需要啟動一個線程進行處理,如果這個連接不做任何事情會造成不必要的線程開銷,當然可以通過線程池機制改善。?

BIO即阻塞I/O, 不管是磁盤I/O 還是網絡I/O, 數據在寫入OutputStream 或者從InputStream讀取時都有可能會阻塞,一旦有阻塞,線程將會失去CPU的使用權,這在當前的大規模訪問量和有性能要求的情況下是不能被接受的。
NIO:同步非阻塞式IO,服務器實現模式為一個請求一個線程,即客戶端發送的連接請求都會注冊到多路復用器上,多路復用器輪詢到連接有I/O請求時才啟動一個線程進行處理。?
AIO(NIO.2):異步非阻塞式IO,服務器實現模式為一個有效請求一個線程,客戶端的I/O請求都是由OS先完成了再通知服務器應用去啟動線程進行處理。?

【推薦】https://www.cnblogs.com/zedosu/p/6666984.html

?

  • Channel和Seletor

Seletor就可以理解為選擇器

?

  • 緩沖區

緩沖區(Buffer):一個用于特定基本數據類型的容器。由 java.nio 包定義的,所有緩沖區都是 Buffer 抽象類的子類。Java NIO 中的 Buffer 主要用于與 NIO 通道進行交互,數據是從通道讀入緩沖區,從緩沖區寫入通道中的。

緩沖區對象本質上是一個數組,但它其實是一個特殊的數組,緩沖區對象內置了一些機制,能夠跟蹤和記錄緩沖區的狀態變化情況,如果我們使用get()方法從緩沖區獲取數據或者使用put()方法把數據寫入緩沖區,都會引起緩沖區狀態的變化。它可以保存多個相同類型的數據。

?

【補充】

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的无招胜有招之NIO的全部內容,希望文章能夠幫你解決所遇到的問題。

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