A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨增坤 金牌黑马   /  2013-9-10 21:56  /  1259 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨增坤 于 2013-9-11 17:10 编辑

     在老师的视频了不是说,多线程会提高效率的(我知道这只是多线程其中的一个优点,功能,老师说的是迅雷的下载)   
     但是我的理解有的时候有可能不会提高效率:
       老师举的例子不是说:迅雷,qq...等程序不是说同一时刻只是在运行一个程序呢啊,做着高速的切换。如果是线程中的进程会也是这样执行的吧,在同一时刻,也是在执行一个线程,也是做着CPU的切换!
     就拿下载来说吧,迅雷中有多个线程同时下载一部电影,但是内存中不是说谁抢到CPU就会执行,即使同时执行这个任务的线程多,但是还是在一个时刻在执行的是一个线程,那么这样和一直是一个线程在执行这个任务不是一样的吗,用时也会是一样的,只是一个是一直是一个线程在执行,另一种就是:有好几个线程交互的执行执行,本质上同一时刻还是一个线程在执行!
     如果抢到CPU,谁就会执行,如果还是一个一个线程执行的话,那么即使有多个线程那么和有单个线程执行时间会一样的,效率有可能还会降低,

     请大家帮忙解释一下,多线程!!!

5 个回复

倒序浏览
CPU时间一定的,你的线程数越多抢到的CPU的机会越大,抢到的时间就越多了
回复 使用道具 举报
多条线程抢资源的话,   抢到的机会会越多的
回复 使用道具 举报
但是多核呢?它有多个处理器啊。。
回复 使用道具 举报
这多线程的功效在迅雷上可能只有抢占资源的效果.    多线程,在实际意义上讲,我觉得可以看做是多个工人. 当然了. 一辆车,多个工人,搬运东西,当然也跟一个人差不多..
但是很多事需要多线程才能处理. 比如一对多关系.    那个1 就需要在每个任务进来之后开辟一个线程给它.要不然它只能一个一个处理. 假如不用多线程 这样如果路途中出现了阻塞状态,那么后面的所有任务将会被耽搁

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
一般来说CPU每秒钟要执行成千上万次
如果只用来执行单线程是多么的浪费,所以就产生多个线程并发执行
因为CPU处理每个线程的时间都非常短,所以线程之间的等待时间人基本上感觉不到(除非发生多个线程死锁)

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马