这只是从csdn 上网友的回答摘录:
http://bbs.csdn.net/topics/10211932
其实有这么一个经验公式,一个进程所拥有的线程个数合理的是:CPU的个数的两倍再加二,没有理由说你不可以产生更多的线程,但是线程也是要占用资源的,而且10个线程和100个线程比起来,不见得速度就可以快,搞不好因为线程间的任务切换,速度还会要慢一些的。
一般是从服务器方考虑,服务器会对这方面做限制,你客户端并没有限制,但是只要服务器不给你用,你多开了也白费。
现在多数网站都支持多线程下载,但是有些网站为了提供给更多的带宽给新下载的用户,防止某个IP在下载的时候占用太多的带宽,会有意地中断部分连接,以控制流量.
正所谓“欲速则不达”,如果盲目地增加进程的数量,会给自己的计算机和服务器带来巨大的CPU处理时间和内存的开销,就会造成服务器崩溃,完全无法响应任何请求,自然也就无法下载了。即使没有崩溃,过多的进程也会使服务器花费许多不必要的资源在进程之间的管理和协调上,每个进程发送数据的实际效率反而下降。
现在,使用ADSL、专线和宽带网等高速接入的人也越来越多,那么,这些用户是不是也应该以完全使用带宽为标准来调节下载的进程数呢?答案也是否定的。
第一,要考虑服务器的负载能力,如果把服务器“拖”垮了,大家都没得下,相信“吃快弄破碗”的道理不难理解。
第二,通常一条高速接入的线路是供一个局域网或一个小区(特别是宽带网)使用的,在没有使用带宽限制的情况下,带宽是由各用户共享的,如果大家都使用多进程来抢占带宽就只会恶性循环造成代理服务器死机或网络阻塞。
第三,在高速的情况下,多进程下载会使硬盘在为每个进程记录数据时频繁换道,既大大增加了CPU占用,又严重降低了硬盘寿命。解决办法除了减少进程数量以外(一般5个进程已经足够),还可以增大内存缓冲的容量,在网络蚂蚁和网际快车里,通过“选项→参数设置→高级→自动保存任务每隔?KB”和“工具→选项→常规→把数据写入到磁盘每当接收到?KB”都可以很轻松地调节,根据机器配置和网络速度选择即可。
网友评论