Linux epoll的ET和LT方式

在Linux上,epoll是一種必須用到的IO複用的方式。

epoll是Linux內核針對select和poll做的改進。

Linux的epoll主要有三個函數:

int epoll_create(int size);
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout);

epoll的方式主要有LT和ET兩種方式。

LT是Level Trigger的簡寫,意思爲水平觸發;

ET是Edge Trigger的簡寫,意思爲邊緣出發。

LT和ET的區別是:

1)LT是默認方式,如果文件句柄還有數據,則會每次進行讀取;

2)ET工作方式,會一次讀完;

3)用LT方式,儘量讓數據讀完,不要讓IO再掃描程序;

4)ET工作方式,保證緩衝區空間足夠。

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