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

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

  • 相关阅读:
    session 、cookie、token的区别
    翻译-In-Stream Big Data Processing 流式大数据处理
    一致性hash算法
    HA 部署wordpress
    HA 高可用mysql集群
    JVM内存监视手段和内存溢出解决方案
    vmware linux NAT CON
    spring SOA architecture
    思路
    cookie和session得区别
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/14108907.html
Copyright © 2011-2022 走看看