epoll的实现原理
epoll_create
在epoll文件系统建立了个file节点,并开辟epoll自己的内核高速cache区,建立红黑树,分配
好想要的size的内存对象,建立一个list链表,用于存储准备就绪的事件。
epoll_ctl
把要监听的socket放到对应的红黑树上,给内核中断处理程序注册一个回调函数,通知内核,如果
这个句柄的数据到了,就把它放到就绪列表。
epoll_wait
观察就绪列表里面有没有数据,并进行提取和清空就绪列表,非常高效。
epoll的实现原理
epoll_create
在epoll文件系统建立了个file节点,并开辟epoll自己的内核高速cache区,建立红黑树,分配
好想要的size的内存对象,建立一个list链表,用于存储准备就绪的事件。
epoll_ctl
把要监听的socket放到对应的红黑树上,给内核中断处理程序注册一个回调函数,通知内核,如果
这个句柄的数据到了,就把它放到就绪列表。
epoll_wait
观察就绪列表里面有没有数据,并进行提取和清空就绪列表,非常高效。