2017-05-27 117 views
0

我已从here获得关于epoll的基本知识。我知道epoll可以监控多个FD并处理它们。
epoll:我必须使用多线程

我的问题是:一个沉重的事件会阻塞服务器,所以我必须使用多线程?

例如,服务器的epoll正在监视2个套接字A和B.现在A开始向服务器发送大量消息,以便服务器开始读取它们。一秒钟后,B也开始发送消息,同时A仍在发送。在这种情况下,我需要为这些读取操作创建一个线程?如果我不这样做,是否意味着服务器没有机会从B收到消息,直到A完成发送?

回答

0

如果您可以足够快地处理传入消息(无阻塞调用,不需要繁重的计算),则不需要单独的线程。否则,你将从多线程中受益。

在任何情况下,它都有助于理解只有一个线程时发生的情况,并且不能足够快地处理消息。如果您正在使用TCP协议,则向您发送数据的机器将简单地降低其传输速率。使用UDP时,某些传入数据包将被丢弃。

相关问题