2011-12-21 73 views
0

這可能是重複的,但我還沒有看到這完全得到回答。HTTP下載和多線程

使用線程時HTTP下載吞吐量是否增加? 我的想法是,當服務器上的TCP堆棧在發送下一塊數據之前正在等待接收方的確認時,另一個線程正在發送數據請求,然後對其進行處理,從而提高吞吐量。

這是正確的嗎?

回答

0

是的,這是非常正確的。對HTTP請求進行線程處理會提高吞吐量,直到服務器上達到最大連接數,然後這種增加會持續平穩。當然,性能提升將僅限於服務器和客戶端計算機的線程能力。

0

只有在啓動時纔是正確的,在傳輸過程中TCP有一個可以在沒有收到ACK的情況下發送的動態數據窗口。

所以,當數據傳輸正在進行時,在大多數情況下,可以發送的每個數據塊都會發送,從而實現最大吞吐量。

當您使用多個線程時,您可以減少TCP握手中的死區時間。 如果您必須從不同服務器下載文件,或者服務器限制每個連接的帶寬,它也可能很有用。