select、poll和epoll
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相关推荐
- Linux下select, poll和epoll IO模型的详解
http://blog.csdn.net/tianmohust/article/details/6677985 一).Epoll 介绍 Epoll 可是当前在 Linux 下开发大规模并发网络程序的热 ...
- Linux中select poll和epoll的区别
首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...
- select poll 与epoll模型的总结
select()和poll() IO多路复用模型 select优点: 1.一次可以等待多个文件描述符,减少了平均等待时间 2.客户越来越多时,减轻了进程调度的压力(相较于多进程多线程服务器) sele ...
- 三分钟看Netty(3) select poll VS epoll
2019独角兽企业重金招聘Python工程师标准>>> 前言 上一节主要讲述了BIO和NIO的区别.BIO每一步都是阻塞式的:NIO仅在select的时候阻塞,并且在获取到IO权限后 ...
- I/O复用的 select poll和epoll的简单实现
http://www.cnblogs.com/wj9012/p/3876734.html 一个tcp的客户端服务器程序 服务器端不变,客户端通过I/O复用轮询键盘输入与socket输入(接收客户端的信 ...
- Linux多线程编程----IO【select、poll、epoll】
IO操作多 速度就下降 IO数据的 读和写 IO的完成 必须等到 读事件(如磁盘 拷贝 每次要从磁盘查找数据) 和 写事件 (允许写 如写太快 写满就要马上阻塞)的就绪 IO是否高效 :主要看一 ...
- (转载) Linux IO模式及 select、poll、epoll详解
注:本文是对众多博客的学习和总结,可能存在理解错误.请带着怀疑的眼光,同时如果有错误希望能指出. 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案 ...
- Linux IO模式及 select、poll、epoll详解
https://segmentfault.com/a/1190000003063859 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的. ...
- Linux系统编程——I/O多路复用select、poll、epoll
参考:https://segmentfault.com/a/1190000003063859 Linux下的I/O复用与epoll详解:https://www.cnblogs.com/lojunren ...
- Linux IO复用:select、poll、epoll的理解与对比
目录 IO多路复用 select系统调用 poll系统调用 Epoll *系统调用 Epoll vs select/poll 相关文章 Linux(实际上是Unix)的一个基本概念是Unix / Li ...
最新文章
- osgi框架和spring区别_BATJ面试必会之 Spring 篇(二)
- sklearn自学指南(part52)--潜在狄利克雷分配(LDA)
- 曲线运动与万有引力公式_高中物理曲线运动万有引力知识点
- 如何深入理解计算机视觉?(附思维导图)
- 如何提高程序员的生产率 (1)
- RTMPDump源代码分析 0: 主要函数调用分析
- Mysql(2)_ binlog文件
- 计算机培训营,计算机学院举办科创训练营第三期培训
- 深入理解Solaris内核中互斥锁(mutex)与条件变量(condvar)之协同工作原理
- iOS底层探索之对象的本质和类的关联特性initIsa(上)
- jetson nano opencv 打开 CSI摄像头_opencv-python图形图像处理入门基础知识
- 三思而行 --jsp基础篇
- 紫光国芯 数字后端 面经
- 访问学者在德国访学,值得推荐的特色美食有哪些?
- 逍遥游 一致性和哥德尔两大定理—— 读哥德尔之八
- vue双向绑定是如何实现的
- 二叉树---先序遍历(递归)
- android 查看视频大小,android mediaplayer 视频修改视频大小 (屏幕尺寸mediaPlayer =......
- python多点找色找图_[按键精灵教程]带你了解多点找色、多点比色
- 存储过程中的when others then 和 raise 何意义?
热门文章
- Java基础学习总结 -- 图形用户界面GUI
- 漫谈惯性、视觉暂留、潜意识、混合动力发动机、先入为主 - 纯粹的无厘头?...
- 下载tomcat插件最新的网址
- 自动增量字段重新从1开始的方法
- WebService应用:音乐站图片上传
- wifi怎么设置找不到服务器,无线网 登入ip找不到服务器
- mysql char类型c 映射_使用Hibernate原生SQL映射MYSQL的CHAR(n)类型到String时出错
- 事业编还是程序员_34岁程序员月薪3万2,跳槽被国企录取,看到月收入后却犹豫了!...
- ckeditor拖拽添加html,CKEditorCKFinder结合实现在线HTML编辑器
- matlab 多速率,多速率信号处理系统设计与实现.PDF