IO 多路復用

2021-09-22 12:27:42 字數 902 閱讀 8128

io 多路復用是5種i/o模型中的第3種,對各種模型講個故事,描述下區別:

故事情節為:老李去買火車票,三天後買到一張退票。參演人員(老李,黃牛,售票員,快遞員),往返車站耗費1小時。

1.阻塞i/o模型

老李去火車站買票,排隊三天買到一張退票。

耗費:在車站吃喝拉撒睡 3天,其他事一件沒乾。

2.非阻塞i/o模型

老李去火車站買票,隔12小時去火車站問有沒有退票,三天後買到一張票。

耗費:往返車站6次,路上6小時,其他時間做了好多事。

3.i/o復用模型

1.select/poll

老李去火車站買票,委託黃牛,然後每隔6小時**黃牛詢問,黃牛三天內買到票,然後老李去火車站交錢領票。

耗費:往返車站2次,路上2小時,黃牛手續費100元,打**17次

2.epoll

老李去火車站買票,委託黃牛,黃牛買到後即通知老李去領,然後老李去火車站交錢領票。

耗費:往返車站2次,路上2小時,黃牛手續費100元,無需打**

4.訊號驅動i/o模型

老李去火車站買票,給售票員留下**,有票後,售票員**通知老李,然後老李去火車站交錢領票。

耗費:往返車站2次,路上2小時,免黃牛費100元,無需打**

5.非同步i/o模型

老李去火車站買票,給售票員留下**,有票後,售票員**通知老李並快遞送票上門。

耗費:往返車站1次,路上1小時,免黃牛費100元,無需打**

1同2的區別是:自己輪詢

2同3的區別是:委託黃牛

3同4的區別是:**代替黃牛

4同5的區別是:**通知是自取還是送票上門

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 往流中讀出資料...