ngnix等网络服务器为何要对epoll_wait设置超时?

epoll_wait超时的话
说明没有事件发生
不是又要继续循环 epoll_wait吗?
这样设置超时有啥用

阅读 5.9k
2 个回答

谢邀,虽然已经过了很久了,但还是来回答一下

使用epoll_wait的目的一般是利用wait超时的间隙执行一些定时事件,比如定时检测客户连接的活动状态。

服务器程序通常会管理很多定时事件,因此有效地组织这些定时事件,使之能在预期的时间点被触发且不影响服务器的主要 逻辑,对于服务器的性能有着至关重要的影响。Linux系统中提供了三种定时方法:

  • socket 选项 SO_ RCVTIMEOSO_ SNDTIMEO

  • SIGALRM信号

  • I/O复用系统调用的超时参数

epoll_wait就是第三种的一个用法。


参考 <<Linux高性能服务器编程>>

有一种思路是利用超时来触发定时任务

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题