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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马罗坚 金牌黑马   /  2012-4-23 10:39  /  3449 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

我们在用很多下载工具时都可以设置线程 大多数情况线程数越多下载速度越快  但是在一个程序中 同一时间CPU只执行一条线程   线程越多还要切换速度还没单线程块  为什么多线程下载时能提高速度?

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

4 个回复

倒序浏览
,打个比方,一桶水,你用一个笼头往外放水跟用5个笼头往外放水哪个快些?
答案是显然得.你问得问题就是这个道理
回复 使用道具 举报
额,你的理解是对的,CPU在同一时间内,当然是执行一条线程(前提你的是单核CPU,他只有一个运算内核),当我们开多个线程时,
CPU处理任务时,根据时间片算法来处理任务,例如a,b两个线程,a线程的时间片在没用完时,他会转到b线程上去执行任务,速度很快,
貌似是同步进行,两个线程同时下载东西,但是对于CPU在同一时间内,当然是执行其中一个线程,因为CPU调度算法的优越和本身物理
内核的优越,让我们感觉是同时进行。看一下CPU的任务处理机制就明白了。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
我大概懂你的疑惑了,这么解释一下吧,分属不同球队应用程序)的两个线程切换CPU控制权),其中一个人属于名叫“下载”的球队,传球的速度(CPU频率)固定不变,两个人传了8次,每人拿到球4次,这时又来了6个人也属于名叫“下载”的球队,一共8个人开始按顺序传球,8个人传了8次,“下载”一方拿到球7次,比之前的4次多了吧,也就是拿到了更多的控制权。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
哦 知道了 楼上的精辟啊 谢谢各位了。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马