HTTP下载和多线程

时间:2011-12-21 07:04:50

标签: multithreading http tcp

这可能是重复的,但我没有看到这完全回答。

使用线程时HTTP下载吞吐量会增加吗? 我的想法是,当服务器上的TCP堆栈在发送下一个数据块之前等待来自接收器的ack时,另一个线程正在发送数据请求,然后对其进行服务,从而导致吞吐量增加。

这是对的吗?

2 个答案:

答案 0 :(得分:0)

是的,这非常正确。线程化HTTP请求会增加吞吐量,直到服务器上满足最大连接数,然后这种增加将达到稳定水平。当然,性能提升将仅限于服务器和客户端计算机的线程化能力。

答案 1 :(得分:0)

仅在启动时才正确,在传输过程中TCP具有动态数据窗口,可以在不接收ACK的情况下发送。

因此,在进行数据传输时,在大多数情况下,会发送可发送的每个数据块,从而产生最大吞吐量。

使用多个线程时,可以减少TCP握手中的死区时间。 如果您必须从不同的服务器下载文件,或者服务器限制每个连接的带宽,它也会很有用。