som*_*guy 10 c linux events epoll
int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);
Run Code Online (Sandbox Code Playgroud)
我对maxevents参数有点困惑.假设我想编写一个可以处理多达10k连接的服务器.我会将maxevents定义为10000,还是应该因某种原因而降低?
nat*_*ose 13
Maxevents只是struct epoll_events
指向的数组的长度*events
.
如果内核当时有超过该数量的事件要提供给您的程序,它将会看到它不应该因为您不希望在该特定的_wait中返回许多事件.
您可能需要为您的程序试验最佳大小.最佳尺寸甚至可能因架构而异.对于被轮询的少量文件描述符,您可以很容易地设置maxevents
为文件数量(并相应地调整events
数组的大小),但同时注意所有文件的可能性很低,因此您可能可以使用较低的maxevents
价值.