78得票2回答
为什么epoll比select更快?

我看过很多比较,说 select 必须遍历 fd 列表,这很慢。但为什么 epoll 不需要这样做呢?

7得票1回答
Linux中多线程epoll的问题

我有一个使用epoll(7)的多线程Linux程序。 epoll(7)手册上说,当其fds之一关闭时,此fd将自动从epoll集合中删除。 我的问题是,如果在一个线程中关闭了epoll集合中的一个fd,而另一个线程正在不同步地同时轮询epoll集合,那么程序会被破坏还是内核会自动同步此访问? ...

15得票3回答
我不理解Python中的轮询/选择。

我正在使用Python进行一些线程化的异步网络实验,使用的是UDP。 我想了解轮询和select Python模块,我以前没有在C/C++中使用过它们。 它们是做什么的?我有点理解select,但它在监视资源时是否会阻塞?轮询的目的是什么?

24得票1回答
如何使用EPOLLHUP

你们能否为我提供一个使用 EPOLLHUP 进行死对等体处理的好的示例代码?我知道这是检测用户断开连接的信号,但不确定如何在代码中使用它。谢谢您的帮助。

8得票1回答
POLLHUP和POLLRDHUP有什么区别?

根据 poll函数手册页,poll函数可以返回POLLHUP和POLLRDHUP事件。据我所知,只有POLLHUP符合POSIX标准,而POLLRDHUP是Linux非标准扩展。然而,两者都似乎表示连接的写端已关闭,因此我不理解POLLRDHUP相对于POLLHUP的附加价值。请问有人能解释一...

7得票3回答
使用epoll_wait和signalfd处理信号

我正在使用套接字和系统调用编写自己的“回声服务器”。我使用“epoll”来处理同时与多个不同客户端交互的情况,并且所有与客户端的操作都是非阻塞的。当服务器开启并且没有进行任何操作时,它会处于“epoll_wait”状态。现在,我想添加使用信号关闭服务器的可能性。例如,我在“bash终端”中启动...

7得票1回答
epoll的工作原理概述?

我正在撰写一篇关于从数据库轮询(通过同步存储过程调用)转换到消息队列(通过发布/订阅)的技术文章。我希望能够解释轮询数据库与设置连接到AMQP代理并配置消息处理程序有何不同,以及轮询数据库比后者更加繁重。是否有人可以在这里提供解释,或指向一个关于epoll如何在通知套接字上可用新数据的高级教程?

14得票2回答
多线程下的 epoll_wait 更快吗?

我正在考虑基于epoll编写TCP服务器。 为了实现最佳性能,我还想实现多核支持。但在我的研究中出现了以下问题: 在双核处理器上,从两个不同的线程调用两个epoll_wait()函数来观察自己的文件描述符是否更快?或者与调用观察所有文件描述符的单个epoll_wait()一样快吗? 由于内核...

7得票3回答
使用 epoll 和线程的套接字服务器

我正在尝试使用C语言为实时协作编辑器http://en.wikipedia.org/wiki/Collaborative_real-time_editor创建一个socket服务器,但我不知道哪种服务器架构最好。 一开始,我尝试使用select用于socket服务器,但后来我了解了epoll...

26得票1回答
Linux 3.2内核与2.6内核相比,套接字接受不平衡的问题

我正在运行一个相当大规模的Node.js 0.8.8应用,使用 Cluster 在一台有超线程(32个逻辑核心)的16核处理器上运行着16个工作进程。我们发现自从升级到 Linux 3.2.0 内核后(从 2.6.32),来自外部请求在工作子进程间的负载均衡似乎严重倾向于其中的5个或更多进程,...