黑马程序员技术交流社区

标题: 为什么多线程可以加快下载速度? [打印本页]

作者: 黑马罗坚    时间: 2012-4-23 10:39
标题: 为什么多线程可以加快下载速度?
我们在用很多下载工具时都可以设置线程 大多数情况线程数越多下载速度越快  但是在一个程序中 同一时间CPU只执行一条线程   线程越多还要切换速度还没单线程块  为什么多线程下载时能提高速度?
作者: 刘永菲    时间: 2012-4-23 11:07
,打个比方,一桶水,你用一个笼头往外放水跟用5个笼头往外放水哪个快些?
答案是显然得.你问得问题就是这个道理
作者: 王勃    时间: 2012-4-23 11:21
额,你的理解是对的,CPU在同一时间内,当然是执行一条线程(前提你的是单核CPU,他只有一个运算内核),当我们开多个线程时,
CPU处理任务时,根据时间片算法来处理任务,例如a,b两个线程,a线程的时间片在没用完时,他会转到b线程上去执行任务,速度很快,
貌似是同步进行,两个线程同时下载东西,但是对于CPU在同一时间内,当然是执行其中一个线程,因为CPU调度算法的优越和本身物理
内核的优越,让我们感觉是同时进行。看一下CPU的任务处理机制就明白了。
作者: 张卯    时间: 2012-4-23 11:54
我大概懂你的疑惑了,这么解释一下吧,分属不同球队应用程序)的两个线程切换CPU控制权),其中一个人属于名叫“下载”的球队,传球的速度(CPU频率)固定不变,两个人传了8次,每人拿到球4次,这时又来了6个人也属于名叫“下载”的球队,一共8个人开始按顺序传球,8个人传了8次,“下载”一方拿到球7次,比之前的4次多了吧,也就是拿到了更多的控制权。
作者: 黑马罗坚    时间: 2012-4-23 12:23
哦 知道了 楼上的精辟啊 谢谢各位了。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2