几个Threads上的epoll_wait更快?

时间:2012-09-18 16:33:36

标签: multithreading epoll

我正在考虑基于epoll编写tcp服务器。 为了实现最佳性能,我也希望实现多核支持。但在我的研究中出现了以下问题: 调用两个epoll_wait()是否更快 - 来自两个不同线程的调用,每个线程在双核上观察自己的文件描述符?或者这只是调用一个epoll_wait()来观察所有文件描述符?

由于内核会观察文件描述符,我认为在调用epoll_wait()的用户空间中使用多少线程并不重要?

1 个答案:

答案 0 :(得分:0)

我怀疑你提到的两种情况下epoll本身的表现没有区别是正确的。有什么可能有所不同,OTOH,是通过在每个线程中有一个事件循环,你不需要上下文切换到一个单独的工作线程来处理连接。这是例如nginx的工作原理,参见例如http://www.aosabook.org/en/nginx.html