2017-05-27 119 views
0

我已從here獲得關於epoll的基本知識。我知道epoll可以監控多個FD並處理它們。
epoll:我必須使用多線程

我的問題是:一個沉重的事件會阻塞服務器,所以我必須使用多線程?

例如,服務器的epoll正在監視2個套接字A和B.現在A開始向服務器發送大量消息,以便服務器開始讀取它們。一秒鐘後,B也開始發送消息,同時A仍在發送。在這種情況下,我需要爲這些讀取操作創建一個線程?如果我不這樣做,是否意味着服務器沒有機會從B收到消息,直到A完成發送?

回答

0

如果您可以足夠快地處理傳入消息(無阻塞調用,不需要繁重的計算),則不需要單獨的線程。否則,你將從多線程中受益。

在任何情況下,它都有助於理解只有一個線程時發生的情況,並且不能足夠快地處理消息。如果您正在使用TCP協議,則向您發送數據的機器將簡單地降低其傳輸速率。使用UDP時,某些傳入數據包將被丟棄。

相關問題