0

select()TCP非阻塞套接字连接的客户端是否有替代方案?

select()主要是针对多个连接,但是我的客户端只有一个连接。因此,我问自己是否有替代功能来识别单个套接字上的 I/O。那可能会更快,我不需要所有的fd_set处理。

4

2 回答 2

2

Select() 可帮助您一次性监控读取和写入事件(以及异常事件),因此它确实使事情具有可扩展性,而不是应用程序必须检查(因为它是非阻塞的)。您可能应该澄清您的最终设计目标是什么。当然,正如有人提到的,拥有两个线程,一个用于读取和写入可能会做同样的事情。事实上,如果你有更高的工作负载,你可以超过两个,实际上保留一个线程池。

于 2013-07-26T00:49:57.203 回答
0

您应该在客户端使用,如果您只使用一个套接字select(),它不会更快。select

顺便说一句select(),由于其性能问题,它不适用于多个连接......在现实世界中。仅供参考,请查看/dev/poll/ epoll()/kqueue()io completion portWindows。

于 2013-07-24T12:10:48.233 回答