Henkk

导航

Linux高并发之--select,poll,epoll

1. 三种方式的区别及总结参考:https://www.cnblogs.com/Anker/p/3265058.html

select连接数限制windows一般为64

2. 三种方式

  2.1 select方式参考:https://www.cnblogs.com/Anker/p/3258674.html

  2.2 poll方式参考: https://www.cnblogs.com/Anker/p/3261006.html

  2.3 epoll方式参考:https://www.cnblogs.com/Anker/p/3263780.html

3. 要点总结

  1.select 有1024限制,消息在内核态和用户态之间拷贝    数组结构

  2.poll突破select的1024限制,消息在内核态和用户态之间拷贝  链式结构

  3. epoll无1024限制,内核和用户共享一个区域, 红黑树    

    水平模式:当epoll_wait检测到描述符事件发生并将此事件通知应用程序,应用程序可以不立即处理该事件。下次调用epoll_wait时,会再次响应应用程序并通知此事件。

    边缘模式:当epoll_wait检测到描述符事件发生并将此事件通知应用程序,应用程序必须立即处理该事件。如果不处理,下次调用epoll_wait时,不会再次响应应用程序并通知此事件。

        ET模式在很大程度上减少了epoll事件被重复触发的次数,因此效率要比LT模式高。epoll工作在ET模式的时候,必须使用非阻塞套接口,以避免由于一个文件句柄的阻塞读/阻塞写操作把处理多个文件描述符的任务饿死。

4. socket相关属性设置参见:https://www.cnblogs.com/baiduboy/p/8127913.html

 

posted on 2019-07-05 15:56  Henkk  阅读(362)  评论(0编辑  收藏  举报