7

我查看了和之间poll的区别。我不明白什么时候应该使用. 考虑到这一点,我没有看到任何优势,并且拥有一切,甚至更多。epollselectselectpollepollselect

4

2 回答 2

0

从历史上看,select到 1983 年首先出现在 BSD4.2 中。作为第一,它有幸成为最流行和最便携的。

也就是说,两者selectpoll规模都非常大。根据select缩放到O(highest_fd)poll到。对于大量文件描述符,它的扩展性要好得多,但仅适用于 Linux。O(total_fds)LIBEV(3)epoll

使用像libevent, libev, 或这样的事件库libuv将提供一个抽象层并尝试在您的系统上使用性能最高的方法,因此您不必担心在select, poll, epoll, or之间进行选择kqueue(对于 MacOS 和 BSD)。

于 2021-03-11T03:50:44.897 回答
-2

select() 监控的文件描述符比 poll() 少。此外,select() 的一些实现只是使用 poll()。

于 2013-08-02T15:43:01.783 回答