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

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

14得票3回答
为什么我们需要在poll中调用poll_wait函数?

我在LDD3中看到了这些代码static unsigned int scull_p_poll(struct file *filp, poll_table *wait) { struct scull_pipe *dev = filp->private_data; unsig...

14得票3回答
C: epoll和多线程

我需要创建一个专用的HTTP服务器,计划使用epoll系统调用,但是我想要利用多个处理器/核心,我无法想出架构解决方案。 目前我的想法是:创建多个带有自己epoll描述符的线程,主线程接受连接并将它们分配给线程的epoll。 但是否有更好的解决方案?哪些书籍/文章/指南可以让我了解高负载架构?...

14得票1回答
关于 epoll_ctl()

在使用 epoll_ctl() 函数时,我发现第三个参数“fd”是除了 epoll 文件描述符“epfd”之外的另一个文件描述符。我看到有这样一个示例:event.data.fd = sfd; //sfd is a fd for listening event.events = EPOLLIN...

14得票3回答
只使用一个文件描述符,select、poll和epoll有性能差异吗?

标题已经说明了一切。 “...”也包括pselect和ppoll。 我正在处理一个基于多线程的服务器项目。每个线程处理一个或多个会话。所有线程都是相同的。协议负责确定哪个线程将托管会话。 我正在使用一个内部套接字类来封装事物。值得注意的是checkread调用,它调用poll(Linux...

14得票1回答
什么是在Node.js应用程序中的epoll_pwait,我该怎么办?

我的应用程序是桌游《卡坦岛》的Web版本。 我使用node --prof app.js对应用程序进行分析,然后使用node --prof-process ISOLATE_LOG_FILE > processed.txt将它们转换为处理过的文件。 我确实遇到了很多未知代码的代码移动事件...

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

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

13得票3回答
当timeout为0时,poll()函数会立即检查文件描述符的状态并立即返回。

我正在查看 poll() 的文档,它告诉我在 timeout 参数传入正值和负值时的行为。但它没有说明如果 timeout 为 0 会发生什么。 你有什么想法吗? 查看 epoll_wait() 的文档,它告诉我当 timeout 值为 0 时,即使没有事件可用,它也会立即返回。那么可以安全...

13得票4回答
可扩展的C++服务器框架

我想用C++编写一个服务器应用程序,能同时处理数万个客户端连接,且能在Windows和Linux操作系统下运行。我已经搜索了很多框架和库,发现Boost Asio是一个非常成熟和广泛使用的选择。但是,由于Boost库有数百万个模板,我很难理解strand/线程池的使用。我的背景主要是C语言,不...

13得票1回答
Epoll和远程单向关闭

假设本地Linux主机上的TCP套接字处于已连接状态,并且正在使用epoll_wait来通知本地主机与远程主机之间的套接字事件。如果远程主机调用: shutdown(s,SHUT_WR); 当一个连接的套接字完成传输时,在本地主机上,epoll_wait会返回哪些事件来指示它已完成传输? 我假...