IO 多路複用5種

作者:levin
鏈接:https://www.zhihu.com/question/32163005/answer/255238636
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

IO 多路複用是5種I/O模型中的第3種,對各種模型講個故事,描述下區別:故事情節爲:
老李去買火車票,三天後買到一張退票。參演人員(老李,黃牛,售票員,快遞員),往返車站耗費1小時。

1.阻塞I/O模型
老李去火車站買票,排隊三天買到一張退票。
耗費:在車站喫喝拉撒睡 3天,其他事一件沒幹。

2.非阻塞I/O模型
老李去火車站買票,隔12小時去火車站問有沒有退票,三天後買到一張票。耗費:往返車站6次,路上6小時,其他時間做了好多事。

3.I/O複用模型
1.select/poll(select只能監視1024個,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的區別是:電話通知是自取還是送票上門

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章