多线程下载比单线程下载快吗,请教各位
接触网络编程不多,只从理论上理解,多线程下载是把文件分成多块,不同线程负责传输不同的文件块,但是同一时刻只会有一个线程运行,相比较单线程似乎应该是一样的,而且多线程还会有线程切换开销,似乎还不如单线程,那么在什么情况下多线程好呢?网络比较拥塞吗?请教了
[解决办法]
楼主的说法不是很正确。
1.多线程的切换时间是在本地的,相对于网络传输来说,就是没有开销的;
2.多线程下载,个人认为如果网络条件不能达到一定的程序,还不如单线程来得快;
3.多线程下载,要看服务器是否支持让你多线程。
[解决办法]
同意楼上的
补充
1在多cpu机器中一个cpu一线程,可以减少线程切换
2在单cpu中多线程可以改善用户体验和cpu使用效率,如在网络传输时,可以切换到用户界面线程处理用户输入,或一个线程在网络传输需要等待使用cpu时,切换到另一个线程处理网络传输事件
3如果网速太慢一个线程就能用满,则没必要多线程。
[解决办法]
如果你的出口带宽有富余,而服务器有很多人连接且带宽不富裕,多线程就可以从其他人那里抢到一些服务器带宽。