lt和et的區別:
lt對於存在未讀完的資料,下一次呼叫epoll_wait還會觸發,
et無論是否讀完,只觸發一次,直到下一次epollin事件到來
lt的優點:易於編碼,未讀完的資料下次還能繼續讀,不易遺漏
et的缺點:難以編碼,需要一次讀完,有時會遺漏
lt的缺點:在併發量高的時候,epoll_wait返回的就緒佇列比較大,遍歷比較耗時。因此lt適用於併發量小的情況
et的優點:併發量大的時候,就緒佇列要比lt小得多,效率更高
參考:
epoll的ET和LT模式
從man手冊中,得到et和lt的具體描述如下 epoll事件有兩種模型 edge triggered et level triggered lt 假如有這樣乙個例子 1.我們已經把乙個用來從管道中讀取資料的檔案控制代碼 rfd 新增到epoll描述符 2.這個時候從管道的另一端被寫入了2kb的資料 ...
epoll的ET和LT模式詳解
從man手冊中,得到et和lt的具體描述如下 epoll事件有兩種模型 edge triggered et level triggered lt 假如有這樣乙個例子 1.我們已經把乙個用來從管道中讀取資料的檔案控制代碼 rfd 新增到epoll描述符 2.這個時候從管道的另一端被寫入了2kb的資料 ...
epoll的ET模式和LT模式
查閱了一些資料,才知道常用的事件處理庫很多都選擇了 lt 模式,包括大家熟知的libevent和boost asio等,為什麼選擇lt呢?那就不得不從et的弊端的弊端說起。et模式下,當有事件發生時,系統只會通知你一次,也就是呼叫epoll wait 返回fd後,不管事件你處理與否,或者處理完全與否...