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