• <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>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉,開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            EPOLL的ET和LT模式

            Posted on 2010-11-06 18:35 S.l.e!ep.¢% 閱讀(503) 評論(0)  編輯 收藏 引用 所屬分類: epoll

            LT(level triggered)是缺省的工作方式,并且同時支持block和no-block socket.在這種做法中,內核告訴你一個文件描述符是否就緒了,然后你可以對這個就緒的fd進行IO操作。如果你不作任何操作,內核還是會繼續通知你的,所以,這種模式編程出錯誤可能性要小一點。傳統的select/poll都是這種模型的代表.

            ET (edge-triggered)是高速工作方式,只支持no-block socket。在這種模式下,當描述符從未就緒變為就緒時,內核通過epoll告訴你。然后它會假設你知道文件描述符已經就緒,并且不會再為那個文件描述符發送更多的就緒通知,直到你做了某些操作導致那個文件描述符不再為就緒狀態了(比如,你在發送,接收或者接收請求,或者發送接收的數據少于一定量時導致了一個EWOULDBLOCK 錯誤)。但是請注意,如果一直不對這個fd作IO操作(從而導致它再次變成未就緒),內核不會發送更多的通知(only once),不過在TCP協議中,ET模式的加速效用仍需要更多的benchmark確認。

            struct epoll_event struEvent;
            struEvent.events = EPOLLIN | EPOLLOUT | EPOLLET;
            struEvent.data.fd = hSocket;
            ??? epoll_ctl(m_hEpoll, EPOLL_CTL_ADD, hSocket, &struEvent);
            如果將監聽套接字m_hListenSocket和epoll關聯起來,則代碼如下:
            struct epoll_event struEvent;
            struEvent.events = EPOLLIN | EPOLLET;
            struEvent.data.fd = m_hListenSocket;
            ??? epoll_ctl(m_hEpoll, EPOLL_CTL_ADD, m_hListenSocket, &struEvent);
            如果想使用LT模式,直接把事件的賦值修改為以下即可,也許這就是缺省的意義吧。
            struEvent.events = EPOLLIN | EPOLLOUT; //用戶TCP套接字
            struEvent.events = EPOLLIN;???? //監聽TCP套接字
            不過,通過測試確定,這兩種模式的性能差距還是非常大的,最大可以達到10倍。100個連接的壓力測試,其他環境都相同,LT模式CPU消耗99%、ET模式15%。


            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/borefo/archive/2009/09/22/4577104.aspx

            久久人人爽人人爽人人片AV东京热| 亚洲国产精品成人久久蜜臀| 2021精品国产综合久久| 99久久精品毛片免费播放| 国产免费福利体检区久久 | 久久午夜夜伦鲁鲁片免费无码影视 | 7777久久久国产精品消防器材| 亚洲欧美成人综合久久久| 97久久精品人妻人人搡人人玩 | 久久播电影网| 久久天天躁狠狠躁夜夜96流白浆| 久久亚洲国产午夜精品理论片 | 色综合久久中文字幕综合网| 国内精品伊人久久久久AV影院| 青青草国产97免久久费观看| 国产精品一区二区久久不卡| 日韩十八禁一区二区久久| av午夜福利一片免费看久久| 久久丫忘忧草产品| 香港aa三级久久三级老师2021国产三级精品三级在 | 97r久久精品国产99国产精| 久久人人添人人爽添人人片牛牛| 国产福利电影一区二区三区,免费久久久久久久精 | 久久99精品国产麻豆宅宅| 久久精品亚洲男人的天堂| 国产午夜精品理论片久久影视| 国产精品久久久久久久久软件| 精品久久久久久久久久中文字幕| 99久久精品日本一区二区免费| 日韩精品久久久肉伦网站 | 狠狠色综合网站久久久久久久| 久久久久久夜精品精品免费啦| 久久久www免费人成精品| 2021国内精品久久久久久影院| 久久久WWW成人免费毛片| 很黄很污的网站久久mimi色| 国产亚洲精午夜久久久久久| 99久久成人18免费网站| 精品久久人人妻人人做精品| 国产亚洲色婷婷久久99精品91| 久久久久久久久久久免费精品|