前言
那么這里博主先安利一下一些干貨滿滿的專欄啦!
Linux專欄https://blog.csdn.net/yu_cblog/category_11786077.html?spm=1001.2014.3001.5482操作系統(tǒng)專欄https://blog.csdn.net/yu_cblog/category_12165502.html?spm=1001.2014.3001.5482手撕數(shù)據(jù)結(jié)構(gòu)https://blog.csdn.net/yu_cblog/category_11490888.html?spm=1001.2014.3001.5482
GitHub地址
去倉庫獲取代碼的小伙伴不要忘記給博主點個小星星哦!
Multiplexing-high-performance-IO-serverhttps://github.com/Yufccode/Multiplexing-high-performance-IO-server
什么是多路轉(zhuǎn)接
網(wǎng)絡通信的本質(zhì)是IO
IO效率問題:網(wǎng)絡IO效率很低為什么網(wǎng)絡IO效率低?
以讀取為例:
當我們read/recv時,如果底層緩沖區(qū)中沒有數(shù)據(jù),那么read/recv會怎么做?->阻塞
當我們read/recv時,如果底層緩沖區(qū)中有數(shù)據(jù),會發(fā)生什么?->copy
所以IO=等待+數(shù)據(jù)復制
那么,什么是高效IO?什么是低效IO?低效:單位時間,大部分時間IO類接口實際上都在等待?。?!
如何提高IO的效率?讓等待的比例降低?。。。。?/strong>
- 五種IO模型:
- 閉塞類型
- 非阻塞輪詢
- 信號驅(qū)動
- 多路復用和多路復用
- 異步IO
第四種方法是最有效的!
為什么?因為單位時間的等待時間很低。如果一個線程/進程想要參與IO,我們稱之為同步IO。IO=等待+復制,所謂的參與實際上意味著要么參與等待,要么參與復制,或者兩者同時參與。
多路轉(zhuǎn)接高性能IO服務器的實現(xiàn)
詳情見Github上的README文件
Multiplexing-high-performance-IO-serverhttps://github.com/Yufccode/Multiplexing-high-performance-IO-server文章來源:http://www.zghlxwxcb.cn/news/detail-552130.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-552130.html
到了這里,關于多路轉(zhuǎn)接高性能IO服務器|select|poll|epoll|模型詳細實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!