1、ngx_epoll_process_events函数调用位置
在子进程的for循环中。处理网络事件和定时器事件
会被不断地,多次地反复调用。
2、ngx_epoll_process_events函数内容
调用epoll_wait从双向链表中获取事件。拿到的是监听套接字上的可读事件。
2.1、事件驱动
通过获取到的事件,并通过事件调用适当的函数处理逻辑。
3、ngx_event_accept函数内容
ET:边缘触发,高速模式。
a、accept4
b、ngx_get_connection
3.1、epoll的两种工作模式:监听套接字直接设置为0。连接套接字才使用。
LT:水平触发,level trigger,这种工作模式是低速模式。效率差。
来一个事件,如果不用函数处理,就会一直被触发。epoll_wait一直返回。
ET:edge trigger,边缘触发,这种工作模式是高速模式,效率好。
缺省用LT模式。
现状,所有的监听套接字用得都是水平触发,接入进来的用户套接字都是边缘触发。
网友评论