zoukankan      html  css  js  c++  java
  • 在写一次epoll

    epoll & select & poll只能处理IO相关的操作,epoll每一个操作必须注册到时间监控机制中,并且还需要进程或者线程进行管理。

    多进程/多线程 和epoll相比较

      epoll用在大量链接,少处理的项目中;

      多线程/多进程用在少量链接,复杂的业务处理。

    在QQ中,处理登陆是epoll实现,因为epoll只能处理IO相关操作,所以epoll将登陆数据往后传送进程或线程做后续处理,并且把sql查询向数据库请求数据给数据库,并且高并发是在epoll端解决。

    epoll比poll多了高速模式即(边缘触发)

     ppc/tpc(多进程/多线程)

      小号系统资源,连接数增多,系统的开销增大,每一个链接有一个独立的线程/进程,实时性,连接数不多 一般为几百个

    select 

      采用轮询的方式 并且连接数在1024~2048之间,

    epoll

      默认模式(水平触发)和poll差不多(除epoll监听的句柄多)连接数为几百万

    水平触发:

      只要句柄文件有了动作,那么epoll就开始被占用。Nainx中的例子会将数据接受完全。

    边缘触发:

      当数据接受完成时,epoll开始进行管理。Nginx中的例子会将没接收完的数据在第二个数据到来时,接收。

     注:epoll进行管理的句柄增大,效率降低。epoll去掉了ppc/tpc对进程的封装。

  • 相关阅读:
    退出程序
    筛选datatable
    1-2 开发环境搭建-Windows平台
    5-1 安全发布对象-发布与逸出
    4-4 线程安全性-可见性
    4-3 线程安全性-原子性-synchronized
    4-2 线程安全性-原子性-atomic-2
    4-1 线程安全性-原子性-atomic-1
    Spring
    Spring
  • 原文地址:https://www.cnblogs.com/chenyang920/p/5569727.html
Copyright © 2011-2022 走看看