温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

select、poll、epoll三者的区别是什么

发布时间:2021-06-22 15:20:25 来源:亿速云 阅读:126 作者:Leah 栏目:大数据

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

  • 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三者的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI