2012-07-24 157 views
0

是否有任何方法來設置特定的std :: thread的網絡使用優先級?例如。我有多個線程下載信息,但並非所有的線程都應具有相同的網絡使用情況,因爲我希望某些線程可以更快地下載特定信息。C++線程網絡優先級

+1

一般來說,不存在「線程網絡優先級」這樣的事情。 – bmargulies 2012-07-24 21:57:06

+0

您的問題的確切解決方案是特定於實現的。如果我是你,我會使用帶有專用線程的網絡管理器,並且每個嘗試寫入的線程都會獲得自己的緩衝區,並將數據轉儲到其中。該操作可能會阻塞,直到緩衝區清空(同步種類),或直到數據完全發送(異步)。無論哪種情況,網絡管理員都會將網絡資源分配給它認爲合適的線程的等待數據。 – Wug 2012-07-24 21:58:04

回答

3

這不是一個線程問題,不應該處理線程級別。相反,您應該在啓動每次下載時指定它的優先級。如何做到這一點完全取決於你下載的方式以及網絡中可用的服務質量(如果有的話)。

+0

猜你是對的,我一直在使用libcurl處理請求,但還沒有找到一種方法來增加特定處理的優先級。需要重新考慮解決方案,但值得一試,謝謝:) – SMK 2012-07-24 22:01:33

1

您可以根據優先級設置各自的套接字接收緩衝區大小,確保只有最高優先級的套接字緩衝區>帶寬延遲產品。