1、select的描述符大于FD_SETSIZE(1024)时会引起内存越界,poll和epoll不会,虽然连接数有上限,但是很大,1G内存的机器上可以打开10万左右的连接,2G内存的机器可以打开20万左右的连接

2、epoll是Linux所特有,而select则应该是POSIX所规定,一般操作系统均有实现,所以select支持的系统更多,可移植性更强。

3、select有支持处理信号阻塞和更高时间分辨率(纳秒)的pselect

4、多线程中使用select和poll CPU使用率过高,因为select遍历检测0-maxfd中的所有套接字,poll也是线性遍历的方式而epoll只检测设置的fd。

select适用于少量fd的情况

5、poll本质上和select没有区别,但是它没有最大连接数的限制,原因是它是基于链表来存储的

5、select和poll需要将消息从内核传递到用户空间,都需要内存拷贝,而epoll利用mmap()文件映射内存加速与内核空间的消息传递;即epoll使用mmap减少复制开销。

转载于:https://www.cnblogs.com/luiz/p/6828802.html

select、poll和epoll相关推荐

  1. Linux下select, poll和epoll IO模型的详解

    http://blog.csdn.net/tianmohust/article/details/6677985 一).Epoll 介绍 Epoll 可是当前在 Linux 下开发大规模并发网络程序的热 ...

  2. Linux中select poll和epoll的区别

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...

  3. select poll 与epoll模型的总结

    select()和poll() IO多路复用模型 select优点: 1.一次可以等待多个文件描述符,减少了平均等待时间 2.客户越来越多时,减轻了进程调度的压力(相较于多进程多线程服务器) sele ...

  4. 三分钟看Netty(3) select poll VS epoll

    2019独角兽企业重金招聘Python工程师标准>>> 前言 上一节主要讲述了BIO和NIO的区别.BIO每一步都是阻塞式的:NIO仅在select的时候阻塞,并且在获取到IO权限后 ...

  5. I/O复用的 select poll和epoll的简单实现

    http://www.cnblogs.com/wj9012/p/3876734.html 一个tcp的客户端服务器程序 服务器端不变,客户端通过I/O复用轮询键盘输入与socket输入(接收客户端的信 ...

  6. Linux多线程编程----IO【select、poll、epoll】

    IO操作多   速度就下降 IO数据的 读和写 IO的完成 必须等到 读事件(如磁盘 拷贝  每次要从磁盘查找数据) 和 写事件 (允许写 如写太快 写满就要马上阻塞)的就绪 IO是否高效 :主要看一 ...

  7. (转载) Linux IO模式及 select、poll、epoll详解

    注:本文是对众多博客的学习和总结,可能存在理解错误.请带着怀疑的眼光,同时如果有错误希望能指出. 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案 ...

  8. Linux IO模式及 select、poll、epoll详解

    https://segmentfault.com/a/1190000003063859 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的. ...

  9. Linux系统编程——I/O多路复用select、poll、epoll

    参考:https://segmentfault.com/a/1190000003063859 Linux下的I/O复用与epoll详解:https://www.cnblogs.com/lojunren ...

  10. Linux IO复用:select、poll、epoll的理解与对比

    目录 IO多路复用 select系统调用 poll系统调用 Epoll *系统调用 Epoll vs select/poll 相关文章 Linux(实际上是Unix)的一个基本概念是Unix / Li ...

最新文章

  1. osgi框架和spring区别_BATJ面试必会之 Spring 篇(二)
  2. sklearn自学指南(part52)--潜在狄利克雷分配(LDA)
  3. 曲线运动与万有引力公式_高中物理曲线运动万有引力知识点
  4. 如何深入理解计算机视觉?(附思维导图)
  5. 如何提高程序员的生产率 (1)
  6. RTMPDump源代码分析 0: 主要函数调用分析
  7. Mysql(2)_ binlog文件
  8. 计算机培训营,计算机学院举办科创训练营第三期培训
  9. 深入理解Solaris内核中互斥锁(mutex)与条件变量(condvar)之协同工作原理
  10. iOS底层探索之对象的本质和类的关联特性initIsa(上)
  11. jetson nano opencv 打开 CSI摄像头_opencv-python图形图像处理入门基础知识
  12. 三思而行 --jsp基础篇
  13. 紫光国芯 数字后端 面经
  14. 访问学者在德国访学,值得推荐的特色美食有哪些?
  15. 逍遥游 一致性和哥德尔两大定理—— 读哥德尔之八
  16. vue双向绑定是如何实现的
  17. 二叉树---先序遍历(递归)
  18. android 查看视频大小,android mediaplayer 视频修改视频大小 (屏幕尺寸mediaPlayer =......
  19. python多点找色找图_[按键精灵教程]带你了解多点找色、多点比色
  20. 存储过程中的when others then 和 raise 何意义?

热门文章

  1. Java基础学习总结 -- 图形用户界面GUI
  2. 漫谈惯性、视觉暂留、潜意识、混合动力发动机、先入为主 - 纯粹的无厘头?...
  3. 下载tomcat插件最新的网址
  4. 自动增量字段重新从1开始的方法
  5. WebService应用:音乐站图片上传
  6. wifi怎么设置找不到服务器,无线网 登入ip找不到服务器
  7. mysql char类型c 映射_使用Hibernate原生SQL映射MYSQL的CHAR(n)类型到String时出错
  8. 事业编还是程序员_34岁程序员月薪3万2,跳槽被国企录取,看到月收入后却犹豫了!...
  9. ckeditor拖拽添加html,CKEditorCKFinder结合实现在线HTML编辑器
  10. matlab 多速率,多速率信号处理系统设计与实现.PDF