zoukankan      html  css  js  c++  java
  • select|poll|epoll

    select,poll和epoll都是IO多路复用技术。多路指的是多个网络连接,复用是指复用一个线程。

    目前epoll是性能最高的多路复用技术,nginx就是基于epoll技术。但是,在网络连接数不多的情况下,IO多路复用的效率不如多线程+阻塞IO。

    1 select

    每次调用,都需要将文件描述符集合(数组结构)从用户空间复制到内核空间,且在内核空间需要遍历每个文件描述符的处理情况,最终返回处理结果。复制和遍历文件描述符集合需要耗费时间,因此,select对每次请求的文件描述符是有限制的。

    2 poll

    poll与select的区别在于,不限制每次请求的文件描述符数量。且集合采用链表结构。

    3 epoll

    与select和poll都不同,不仅不限制每次请求的文件描述符数量,且采用事件回调的机制,不需要遍历全部文件描述符,每次通过事件回调将处理好的文件加入到就绪列表中,最后直接返回就绪列表中的数据。

    数据结构采用的是红黑树。

  • 相关阅读:
    AlexNet详解3
    ReLU为什么比Sigmoid效果好
    AlexNet详解2
    AlexNet详解
    微波炉蒸馄饨
    FM与PM信号的表现形式
    HTML与CSS:结构与表现
    CentOS 7安装WordPress
    nginx gzip配置
    minIni: A minimal INI file parser
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/14108907.html
Copyright © 2011-2022 走看看