2011-12-21 49 views
0

这可能是重复的,但我还没有看到这完全得到回答。HTTP下载和多线程

使用线程时HTTP下载吞吐量是否增加? 我的想法是,当服务器上的TCP堆栈在发送下一块数据之前正在等待接收方的确认时,另一个线程正在发送数据请求,然后对其进行处理,从而提高吞吐量。

这是正确的吗?

回答

0

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

0

只有在启动时才是正确的,在传输过程中TCP有一个可以在没有收到ACK的情况下发送的动态数据窗口。

所以,当数据传输正在进行时,在大多数情况下,可以发送的每个数据块都会发送,从而实现最大吞吐量。

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