这篇文章将为大家详细讲解有关select、poll、epoll三者的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

创新互联建站专业网站设计制作、网站建设,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文营销等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。
- fd指文件描述符 
- select 
- 时间复杂度O(n) 
- 无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作 
- poll 
- 然后查询每个fd对应的设备状态, 
- 时间复杂度O(n) 
- poll本质上和select没有区别, 
- 它将用户传入的数组拷贝到内核空间, 
- 但是它没有最大连接数的限制,原因是它是基于链表来存储的. 
- epoll 
- 此时我们对这些流的操作都是有意义的 
- 时间复杂度O(1) 
- 可以理解为event poll 
- epoll实际上是事件驱动(每个事件关联上fd)的, 
- 但select,poll,epoll本质上都是同步I/O, 
- 因为他们都需要在读写事件就绪后自己负责进行读写, 
- 也就是说这个读写过程是阻塞的, 
- 而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。 
- AIO也是基于epoll, 
- 把数据从内核拷贝到用户空间 
关于select、poll、epoll三者的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
网站题目:select、poll、epoll三者的区别是什么
文章分享:http://www.scyingshan.cn/article/gjijss.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 