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对进程的封装。

  • 相关阅读:
    关于在Websphere下程序找不到jar包内.properties文件的问题
    MysqL的root用户不允许远程连接
    ajax提交表单数据到controller
    js表单验证
    jq删除标签中的元素
    点击超链接触发js事件
    spring的特点
    mysql每个jar包的作用
    抽象工厂举例
    简单的省市联动
  • 原文地址:https://www.cnblogs.com/chenyang920/p/5569727.html
Copyright © 2011-2022 走看看