线程是否限制使用网络带宽?

时间:2011-11-04 15:55:52

标签: multithreading network-programming

我听说单线程使用网络带宽有一些限制吗?如果这是真的,这是使用多线程编程来实现最大带宽的原因吗?

2 个答案:

答案 0 :(得分:0)

对网络任务使用多线程的原因是一个线程可能正在等待来自远程服务器的响应。创建多个线程可以帮助您一次从不同的请求中至少下载一个线程。

答案 1 :(得分:0)

一次发出多个网络请求的常见原因(隐式地使用用户线程,或隐式使用内核线程和异步回调),可以最小化网络延迟的影响。延迟可能会产生很大的影响。例如,Web连接首先需要DNS查找,然后是TCP 3路连接,然后是一些数据传输,最后是4路关闭。如果页面大小较小且带宽与延迟相比较大,则花费大部分时间等待协议交换。

因此,如果您正在爬行多个服务器,即使在单核计算机上,多线程设计也要快得多。如果您从一台服务器下载单个视频文件,而不是那么多..