Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 线程使用网络带宽有限制吗?_Multithreading_Network Programming - Fatal编程技术网

Multithreading 线程使用网络带宽有限制吗?

Multithreading 线程使用网络带宽有限制吗?,multithreading,network-programming,Multithreading,Network Programming,我听说单线程使用网络带宽有一些限制?如果这是真的,这就是使用多线程编程实现最大带宽的原因吗?对网络任务使用多线程的原因是一个线程可能正在等待远程服务器的响应。创建多个线程可以帮助您一次至少有一个线程从不同的请求下载。一次发出多个网络请求的常见原因(隐式使用用户线程,或隐式使用内核线程和异步回调),网络延迟的影响可以最小化。延迟会产生很大的影响。例如,web连接首先需要DNS查找,然后是TCP 3路连接,然后是一些数据传输,最后是4路关闭。如果与延迟相比,页面大小较小,带宽较大,则大部分时间都花在

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

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

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

因此,如果您正在对多个服务器进行爬网,那么即使在单核机器上,多线程设计也会大大加快速度。如果您从一台服务器下载一个视频文件,则不需要太多