ngnix等网络服务器为何要对epoll_wait设置超时?
epoll_wait超时的话
说明没有事件发生
不是又要继续循环 epoll_wait吗?
这样设置超时有啥用
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
epoll_wait超时的话
说明没有事件发生
不是又要继续循环 epoll_wait吗?
这样设置超时有啥用
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
谢邀,虽然已经过了很久了,但还是来回答一下
使用
epoll_wait
的目的一般是利用wait超时的间隙执行一些定时事件,比如定时检测客户连接的活动状态。服务器程序通常会管理很多定时事件,因此有效地组织这些定时事件,使之能在预期的时间点被触发且不影响服务器的主要 逻辑,对于服务器的性能有着至关重要的影响。Linux系统中提供了三种定时方法:
socket 选项
SO_ RCVTIMEO
和SO_ SNDTIMEO
SIGALRM信号
I/O复用系统调用的超时参数
而
epoll_wait
就是第三种的一个用法。参考 <<Linux高性能服务器编程>>
有一种思路是利用超时来触发定时任务