linux中的select和epoll

select

select能监控的描述符个数由内核中的FD_SETSIZE限制,仅为1024,即使能重新编译内核改变FD_SETSIZE的值(比如poll),但不能提高select的性能。
每次调用都扫描所有描述符的状态,在高并发下有可能有未处理的连接等待超时,此时性能较低。

epoll

epoll维护的描述符数目不受到限制,而且性能不会随着描述符数目的增加而下降。
epoll维护着大量连接,先通过epoll_ctl注册一个描述符到内核中, 在描述符读写就绪时,通过回掉函数将自己加入就绪队列中,之后epoll_wait返回该就绪队列

猜你喜欢

转载自blog.csdn.net/k3108001263/article/details/84287160