美文网首页
笔记,多线程,据说5-10个线程是合理的原因

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

作者: 树列道下的暮行人 | 来源:发表于2017-09-30 18:24 被阅读0次

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

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

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

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

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

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

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

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

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

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

相关文章

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

    这只是从csdn 上网友的回答摘录: http://bbs.csdn.net/topics/10211932 其实...

  • Java多线程知识点(一. 基础)

    1 多线程介绍 多线程是现代编程领域不可绕开的话题,合理的运行多线程能有效降低系统的开发与维护成本,同时显著提升系...

  • Java多线程编程核心技术【笔记】

    Java多线程编程核心技术【笔记】 第一章 Java多线程技能 使用多线程的场景? 阻塞 多线程提高运行效率 依赖...

  • Python 多线程笔记

    Python 多线程笔记 创建线程 1. 使用函数创建多线程 2. 使用类创建多线程 继承 Thread 类 重写...

  • 源码分析之ThreadPoolExecutor

    线程池在多线程编程的中可谓是个利器,使用线程池会大大提高多线程的效率。原因是使用线程池相对于new Thread有...

  • 4. Java并发编程基础

    Java多线程 Java程序的运行是main线程和多个其他线程的同时运行,包括JVM内部线程 使用多线程的原因:更...

  • 「爬虫」12爬虫之多线程爬虫

    1.多线程爬虫 多线程就是程序中的某些程序段并行执行,合理地设置多线程,可以让爬虫效率更高。 2.单线程实例 以爬...

  • 多线程

    1、你理解的多线程(什么是多线程、多线程的原理、多线程的优缺点)? 首先多线程就是在一个进程里面开启了多条线程同时...

  • 二. 并发和多线程基础理论

    多线程的好处 尽管多线程有着许多挑战,但是多线程仍然在使用的原因在于多线程有着诸多好处。其中一些好处如下: 更好的...

  • Java的线程数设置

    对于在实际开发中使用到多线程,并发等操作,如何设置合理的线程数量

网友评论

      本文标题:笔记,多线程,据说5-10个线程是合理的原因

      本文链接:https://www.haomeiwen.com/subject/fjphzttx.html