多线程是不会提高程序的运行效率,反而会影响程序执行效率,至于为什么会有多线程下载呢?这是因为我们在下载时;
给用户提供下载的服务器为每个人都分配一定的带宽,如果是单线程,就只分配一份带宽();
而如果是多线程呢就会分配多份带宽,相比之下,一个用户获得了更多的带宽
这就是多线程下载的好处;并不是多线程会使执行效率变高;
---------------------------------------------------------------------------------是这样的吗
多线程到底是怎么一回事啊

解决方案 »

  1.   

    当在多个cpu的时候,计算机可以同时处理多个事件,多线程当然会快。
    当只有一个cpu的时候,可能快也可能慢,你想想一个任务可以细分为多个子任务,每个都需要cpu资源和内存资源。
    如果是单线程的话,你就只能等处理完一个子任务的时候才能接下去处理下一个子任务。而在多线程的情况下,你可以在第一个子任务用完cpu资源的时候,假如此时他只需要io资源(举个例子,比如说读写文件),这个时候在等待他处理的时候,可以同时处理第二个任务,孰快孰慢,自然就知道了。
    当然多线程要用在合适的场景,有些时候是时候使用多线程,有些时候是不适合的。
      

  2.   

    这个不同处理能力的CPU之间差别比较大。
    我形象的举个例子:
    A:----------------------------------------
    1010101010101010101010101010101001010101A:----------------------------------------B:----------------------------------------
    1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
     1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
    B:----------------------------------------
    程序在计算中执行中,独占模式下,是不是只能处理一个事物。
    某个请请要等待另一个处理结果时,是不是就会阻塞?
    如果采用线程模式的话,就会不断切换各线程来运行,把CPU执行能力最大化。
    但同一时刻依然只能执行一个线程。
    也即:以时间换空间 和 以空间换时间。
    处理事物多和处理事物快两者之间进么衡量。
    所以当线程太多,切换线程需要资源,就会降低性能。
    为什么要进行性能调优,就是找到最佳性能指标。
      

  3.   

    是不是可以这样理解,多线程使得CPU同一时间段,做的事情更多了,但是对于某一个任务来讲,他所花费的时间更多了。貌似有点懂了,还是回去看看操作系统的书吧
      

  4.   

    这个就是cpu执行权,当多个程序都开启的时候,因为cpu在某一时刻只能执行一个线程,所以它会在各个线程之间做高速的切换,所以电脑看起来像是同时执行多个程序,但是线程越多,每个线程平均得到的cpu执行权都会越少运行的就越慢,所以从这方面讲它不是提高效率
    但是如果单线程运作的话。同一时间电脑只能执行一个程序,操作者只能傻傻的等着了,什么也做不了,
    所以多线程的话还是能提高效率的,