黑马程序员技术交流社区

标题: 毕老师多线程第一讲疑问 [打印本页]

作者: startrek36    时间: 2015-4-23 13:30
标题: 毕老师多线程第一讲疑问
毕老师在讲多线程这一章时,引入了一个迅雷下载的例子。
说是五个人一起搬箱子效率会高一些
可是按照前面CPU快速切换的原理,所谓的五个人一起搬,也只不过是CPU一会搬这个,一会搬那个,最后不是等于还是一个人搬的吗?怎会提高效率呢?
作者: WYKings    时间: 2015-4-23 13:35
你可以这么理解,cpu是只有一个,但是计算机系统里面的线程可不仅仅只有你当前运行的程序里面的线程而已,也有其他的程序也在共享cpu的资源,如果线程多一点,获得cpu的资源也就多一点,效率当然提高了啊
作者: 396460221    时间: 2015-4-23 13:38
1,没有多线程,第1个人搬完2再去搬,依此类推,程序启动时间对你来说看不出来,对cpu来说差别太大了。2、有多线程。同时启动了,切换时间很快,对cpu来说同样的时间内执行的东西可以更多。单核区别好像不是很大,双核或多核差别就很大了,我的理解。
作者: bingyu    时间: 2015-4-23 15:35
1、多核;2、占用CPU的几率会变大
作者: JarryHorse    时间: 2015-4-23 18:59
本帖最后由 JarryHorse 于 2015-4-23 19:03 编辑

可以这么理解,CPU相当于一个加工数据的机器,内存相当于物料仓,线程就是搬运工,将物料仓(内存)中的物料搬给机器(CPU)加工,当只有一个线程的时候,线程搬过来一次CPU就加工一次,然后线程还要把数据搬回内存,再在内存中再搬数据过去···,但是有多个线程就是排着队找CPU加工数据(就算不是整齐排队的,CPU也是一直在不停的干活的),加工完再一顿往内存里面存,这样是不是比原来单个线程快多啦,这样好理解不?
作者: li514620797    时间: 2015-4-23 19:14
不懂不明白????




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