IO多路復用

2022-09-20 16:00:11 字數 1386 閱讀 9493

先說明乙個問題:在j**a api中提供了兩套nio,一套是針對標準輸入輸出nio,另一套就是網路程式設計nio。網路程式設計其實就是多了乙個連線的過程,常用在netty一些框架。本文主要講述標準輸入輸出nio

一.bio,nio,aio的區別
先說一些io的模式

根據上面的模型,其實我們可以把一次io粗略的分為2個步驟:「核心資料準備好」和「資料從核心態拷貝到使用者態」

多路復用的系統方法說明:一直在公升級

poll:它和 select 的主要區別就是,去掉了 select 只能監聽 1024 個檔案描述符的限制。

epoll:epoll 是最終的大 boss,它解決了 select 和 poll 的一些問題。

這裡附上乙個大佬寫的關於io多路復用的動畫:io多路復用

二.nio的組成
channel:

三.buffer中對應的position, mark, capacity,limit都啥?

四.j**a中的io流(bio):

分類

實現類:

寄語:我努力奔跑是為了追上那個曾經被寄予厚望的自己

I O多路復用

一 五種i o模型 1 阻塞i o模型 最流行的i o模型是阻塞i o模型,預設情形下,所有套介面都是阻塞的。我們以資料報套介面為例來講解此模型 我們使用udp而不是tcp作為例子的原因在於就udp而言,資料準備好讀取的概念比較簡單 要麼整個資料報已經收到,要麼還沒有。然而對於tcp來說,諸如套介面...

i o多路復用

最常見的i o多路復用就是 select poll epoll了,下面說說他們的一些特點和區別吧。select 可讀 可寫 異常三種檔案描述符集的申明和初始化。fd set readfds,writefds,exceptionfds fd zero readfds fd zero writefds ...

I O多路復用

我們都知道unix like 世界裡,一切皆檔案,而檔案是什麼呢?檔案就是一串二進位製流而已,不管socket,還是fifo 管道 終端,對我們來說,一切都是檔案,一切都是流。在資訊 交換的過程中,我們都是對這些流進行資料的收發操作,簡稱為i o操作 input and output 往流中讀出資料...