笔记,多线程,据说5-10个线程是合理的原因

这只是从csdn 上网友的回答摘录:

http://bbs.csdn.net/topics/10211932

其实有这么一个经验公式,一个进程所拥有的线程个数合理的是:CPU的个数的两倍再加二,没有理由说你不可以产生更多的线程,但是线程也是要占用资源的,而且10个线程和100个线程比起来,不见得速度就可以快,搞不好因为线程间的任务切换,速度还会要慢一些的。


一般是从服务器方考虑,服务器会对这方面做限制,你客户端并没有限制,但是只要服务器不给你用,你多开了也白费。


现在多数网站都支持多线程下载,但是有些网站为了提供给更多的带宽给新下载的用户,防止某个IP在下载的时候占用太多的带宽,会有意地中断部分连接,以控制流量.

正所谓“欲速则不达”,如果盲目地增加进程的数量,会给自己的计算机和服务器带来巨大的CPU处理时间和内存的开销,就会造成服务器崩溃,完全无法响应任何请求,自然也就无法下载了。即使没有崩溃,过多的进程也会使服务器花费许多不必要的资源在进程之间的管理和协调上,每个进程发送数据的实际效率反而下降。

现在,使用ADSL、专线和宽带网等高速接入的人也越来越多,那么,这些用户是不是也应该以完全使用带宽为标准来调节下载的进程数呢?答案也是否定的。

第一,要考虑服务器的负载能力,如果把服务器“拖”垮了,大家都没得下,相信“吃快弄破碗”的道理不难理解。

第二,通常一条高速接入的线路是供一个局域网或一个小区(特别是宽带网)使用的,在没有使用带宽限制的情况下,带宽是由各用户共享的,如果大家都使用多进程来抢占带宽就只会恶性循环造成代理服务器死机或网络阻塞。

第三,在高速的情况下,多进程下载会使硬盘在为每个进程记录数据时频繁换道,既大大增加了CPU占用,又严重降低了硬盘寿命。解决办法除了减少进程数量以外(一般5个进程已经足够),还可以增大内存缓冲的容量,在网络蚂蚁和网际快车里,通过“选项→参数设置→高级→自动保存任务每隔?KB”和“工具→选项→常规→把数据写入到磁盘每当接收到?KB”都可以很轻松地调节,根据机器配置和网络速度选择即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 9,623评论 0 23
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,466评论 11 349
  • 经典链接: 1.android最全知识点 2.android开源项目 3.启舰android开发 4.java面试...
    this_is_for_u阅读 3,240评论 1 8
  • 最近Yo哥也开始追剧了,一部名为《深夜食堂》的情景剧在网络上开播了。 这原是日本的一位漫画家安倍夜郎的漫画作品,起...
    Yo哥时间阅读 3,077评论 0 4
  • 梨花又开放/大漠 梨花又开放,花雨漫天扬。 慈母摇纺车,玩儿惹花香。 日子荡呀荡,树下不见娘。 落一地思念,潸潸忆故乡。
    大漠qxy阅读 3,265评论 3 0