epoll难以替代select

来源:互联网 发布:单片机仿真软件 编辑:程序博客网 时间:2024/05/22 03:41

文/kingkai


    http://www.kernel.org/doc/man-pages/online/pages/man4/epoll.4.html

    epoll单纯对比select,优势可见。

    但各产品线一般都有自身封装的基于select的XX_pool,在多线程的模型下,主进程只负责listen_fd的select并accept,将read_fd插入XX_pool中。各工作线程以加锁的方式获取XX_pool中剩余的read_fd并做相应处理。

    这种模型相当于把轮询的负载转交给工作线程。性能上与epoll相比不再有明显劣势了。

    此外,epoll编码复杂,尤其在事件逐渐增多时,尤为明显。这也是以epoll替换select的门槛之一。