• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            epoll與iocp的異同之處

            本文作者:sodme
            本文出處:http://blog.csdn.net/sodme
            聲明:本文可以不經(jīng)作者同意任意轉(zhuǎn)載、復制、引用。但任何對本文的引用,均須注明本文的作者、出處以及本行聲明信息。

            目前國內(nèi)的網(wǎng)游研發(fā),在服務器使用的開發(fā)平臺方面,win和linux的比例各占多少,我一時半會也沒有準確數(shù)據(jù),但從我了解的這么多公司情況來看,用win系統(tǒng)的還是比較多一點,這些企業(yè)一般都是比較單純的網(wǎng)游公司,而用linux的則多數(shù)是一些傳統(tǒng)的互聯(lián)網(wǎng)公司,比如網(wǎng)易和騰訊。

            網(wǎng)游服務器用win還是linux,向來都是大家關注的話題。我想,原因可能很多,但此處不想過多論述這個問題,為避免多費口舌,我還是明確表明一下自己的觀點:我是推薦用linux作開發(fā)的,雖然我也是剛轉(zhuǎn)來作linux平臺下的開發(fā)。

            那么,說具體一點。但凡作過比較深入的網(wǎng)絡編程的人,都會知道,在win平臺下,高效的IO模型是IOCP,而在linux底下則是epoll。那么,epoll與iocp之間到底有哪些異同之處呢?

            首先,我們看一下它們相同的地方。

            兩者都是處理異步IO的高效模型,這種高效,除了“異步處理”這個共同的特征之外,二者都可以通過指針攜帶應用層數(shù)據(jù):在IOCP里,應用層數(shù)據(jù)可以通過單句柄數(shù)據(jù)和單IO數(shù)據(jù)來與IOCP底層通信;而在epoll里,可以通過epoll_data里的"void *ptr"來傳遞。這是一種很重要的思想,也是它們高效的原因所在:當事件的通知到來時,它不僅告訴你發(fā)生了什么樣的事件,還同時告訴這次事件所操作的數(shù)據(jù)是哪些。

            那么,epoll和iocp到底又有什么不同呢?

            以我目前粗淺的使用經(jīng)驗來看,至少可以得到以下結論:

            1.iocp是在IO操作完成之后,才通過get函數(shù)返回這個完成通知的;而epoll則不是在IO操作完成之后才通知你,它的工作原理是,你如果想進行IO操作時,先向epoll查詢是否可讀或可寫,如果處于可讀或可寫狀態(tài)后,epoll會通過epoll_wait函數(shù)通知你,此時你再進行進一步的recv或send操作。

            2.在1的基礎上,我們其實可以看到,epoll僅僅是一個異步事件的通知機制,其本身并不作任何的IO讀寫操作,它只負責告訴你是不是可以讀或可以寫了,而具體的讀寫操作,還要應用層自己來作;但iocp的封裝就要多一些,它不僅會有完成之后的事件通知,更重要的是,它同時封裝了一部分的IO控制邏輯。從這一點上來看,iocp的封裝似乎更全面一點,但是,換個角度看,epoll僅提供這種機制也是非常好的,它保持了事件通知與IO操作之間彼此的獨立性,使得epoll的使用更加靈活。

            這只是我初步使用epoll開發(fā)過程中的體會,以后有更深的體會時還會發(fā)上來跟大家分享。

            posted on 2006-04-20 18:52 楊粼波 閱讀(811) 評論(0)  編輯 收藏 引用 所屬分類: 網(wǎng)絡編程

            无码国产69精品久久久久网站| 亚洲国产成人精品女人久久久| 影音先锋女人AV鲁色资源网久久 | 国产成人精品久久亚洲高清不卡 | 波多野结衣AV无码久久一区| 欧美熟妇另类久久久久久不卡 | 91麻精品国产91久久久久| 久久狠狠一本精品综合网| 色婷婷综合久久久久中文| 青青青青久久精品国产h| yy6080久久| 久久久青草青青亚洲国产免观| 久久99久久成人免费播放| 97久久超碰成人精品网站| 无码国内精品久久人妻蜜桃 | 日本久久久久久中文字幕| 久久国产精品成人免费| 国产精品久久久久久久久免费 | 亚洲国产美女精品久久久久∴| 久久久受www免费人成| 日韩久久无码免费毛片软件| 亚洲国产成人久久综合一| 久久久久国产精品嫩草影院| 久久亚洲中文字幕精品一区四| 久久久精品日本一区二区三区| 国产精品久久久久一区二区三区| 国产高清美女一级a毛片久久w| 亚洲国产成人乱码精品女人久久久不卡 | 激情综合色综合久久综合| 精品伊人久久大线蕉色首页| 国产精品9999久久久久| 久久综合视频网站| 久久精品无码一区二区三区免费| 无码任你躁久久久久久老妇App| 99久久婷婷免费国产综合精品| 久久有码中文字幕| 国产精品青草久久久久福利99| 777午夜精品久久av蜜臀| 国产午夜精品久久久久九九| 人妻少妇久久中文字幕一区二区 | 伊人久久亚洲综合影院|