epoll
2016-04-20 22:58:26 3 举报
epoll是Linux系统中的一种I/O多路复用技术,它通过内核和用户空间共享的红黑树数据结构来实现高效的事件通知。相较于传统的select和poll方法,epoll具有更高的性能和更低的系统开销。当某个文件描述符发生变化时,epoll会触发相应的事件,用户程序可以对这些事件进行处理。epoll支持水平触发(LT)和边沿触发(ET)模式,用户可以根据实际需求选择合适的触发模式。此外,epoll还支持非阻塞I/O和信号驱动I/O,使得网络编程更加灵活高效。总之,epoll是Linux系统中一种强大的I/O复用技术,广泛应用于各类网络服务器和高性能服务器开发中。
作者其他创作
大纲/内容
struct eppoll_entry
文本
wait_queue_t wait
struct epitem *ovflist
void* private_data
int fd
NULL
被监听文件的file结构
struct epitem *base;
struct file
struct eventpoll *ep
struct epitem
该结构体把我们fd和file结构关联在一起
每个epoll_created都分配该结构体
epoll文件句柄fd
struct epitem
struct list_head rdllink
struct epoll_filefd
用于管理整所有fd的红黑树(树根)
struct list_head rdllist
struct epoll_filefd ffd
struct rb_root rbr
struct eventpoll
已就绪的epitem
struct list_head f_ep_links
struct epoll_event event
struct list_head llink
struct list_head flink
0 条评论
下一页