我查看了 poll
、epoll
和 select
之间的区别。我不明白的是什么时候应该使用select
。我没有看到任何优势,因为 poll
和 epoll
拥有 select
拥有的一切,甚至更多。
最佳答案
从历史上看,select
在 1983 年首先出现在 BSD4.2 中。作为第一个,它具有最普遍和最便携的特权。
就是说,select
和 poll
都非常可伸缩。根据 LIBEV,
。 select
缩放到 O(highest_fd)
,poll
到 O(total_fds)
(3)epoll
对于大量文件描述符的扩展性更好,但仅特定于 Linux。
使用诸如 libevent
、libev
或 libuv
之类的事件库将提供一个抽象层,并尝试在您的计算机上使用最高效的方法系统,因此您不必担心在 select
、poll
、epoll
或 kqueue
之间进行选择(适用于 MacOS 和 BSD)。
关于c - 当我们有 poll() 和 epoll() 时,为什么要使用 select(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18020812/