黑马程序员技术交流社区

标题: 多线程可以提高程序执行效率吗? [打印本页]

作者: Miss小强    时间: 2013-4-23 19:37
标题: 多线程可以提高程序执行效率吗?
本帖最后由 Miss小强 于 2013-4-25 08:06 编辑

张老师的视频里面说:多线程不能提高程序执行效率;
而毕老师说多线程可以提高程序执行效率,
这个这个,我该听谁是啊。。。。
作者: 尹丽峰    时间: 2013-4-23 19:51
效率是肯定比单线程高这点肯定 你要说速度上那肯定不如单线程速度快
作者: 偏執旳、靑春    时间: 2013-4-23 19:59
效率和速度千万不能等同
多线程有时候是为了同时做一件事情,而创建的,其实计算机不可能同时运行两个线程,只是线程互相争夺罢了
从速度上来说,单线程速度绝对快些
作者: 黑马19我最牛    时间: 2013-4-23 21:00
楼上的都回答的不错,效率和速度是不能等同的.多线程的每个线程和单线程比的话,速度慢些,因此CPU是不能同时执行多条语句的,只不过多条线程同时抢CPU的资源,
  但是如果多条线程同时做一件事情,效率肯定高了!
作者: ~(@^_^@)~    时间: 2013-4-23 21:25
楼上说的的确很多...
这个得看你运行的任务了,要是多任务进行,建议多线程,这个安全,但是相对比较起来,效率就会降低
要是单线程任务,就不用考虑安全问题了,效率自然比多线程快
其实都是这样:要安全,就得损失点效率
作者: Miss小强    时间: 2013-4-24 08:08
~(@^_^@)~ 发表于 2013-4-23 21:25
楼上说的的确很多...
这个得看你运行的任务了,要是多任务进行,建议多线程,这个安全,但是相对比较起来,效率 ...

多线程会更安全?单线程效率更低???都被搞晕了。。。
作者: Miss小强    时间: 2013-4-24 08:11
许兵兵 发表于 2013-4-23 21:00
楼上的都回答的不错,效率和速度是不能等同的.多线程的每个线程和单线程比的话,速度慢些,因此CPU是不能同时 ...

效率和速度对于CPU来说有什么区别吗?
CPU办事效率高,不就是说CPU执行效率高吗?
效率是办事又好又快;
速度是指办事快;
对于CPU来说,他还会把事情办砸了吗?
还是难以理解
作者: Miss小强    时间: 2013-4-24 08:16
还是回去看看操作系统方面的书吧。。。

作者: Sword    时间: 2013-4-24 12:01
当在多个cpu的时候,计算机可以同时处理多个事件,多线程当然会快。
当只有一个cpu的时候,可能快也可能慢,你想想一个任务可以细分为多个子任务,每个都需要cpu资源和内存资源。
如果是单线程的话,你就只能等处理完一个子任务的时候才能接下去处理下一个子任务。而在多线程的情况下,你可以在第一个子任务用完cpu资源的时候,假如此时他只需要io资源(举个例子,比如说读写文件),这个时候在等待他处理的时候,可以同时处理第二个任务,孰快孰慢,自然就知道了。
当然多线程要用在合适的场景,有些时候是时候使用多线程,有些时候是不适合的。
作者: lipingan0520    时间: 2013-4-24 12:15
多线程,可以做多件事,不只是毕老师单单讲的买票卖票,没有太多实际意思,只是为了理解多线程,更加形象点。
举个例子:就向360软件一样,可以同时清理垃圾、修复漏洞、安装程序。
这都是多线程的效果,如果单线程,清理垃圾的时候,就不能做别的了。

作者: 孙鑫    时间: 2013-4-24 18:00
多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。
线程是在同一时间需要完成多项任务的时候实现的.
作者: 黄玉昆    时间: 2013-4-24 19:17
如果问题解决了,请将问题分类改为“已解决”,谢谢
作者: 黑马19我最牛    时间: 2013-4-24 23:09
Miss小强 发表于 2013-4-24 08:11
效率和速度对于CPU来说有什么区别吗?
CPU办事效率高,不就是说CPU执行效率高吗?
效率是办事又好又快;

比如说,如果只用单线程,那么这个单线程的速度肯定要比多线程中每个线程的速度快.但是综合起来后,多线程同时做一件事情,那么这件事情就会效率高.   自己的理解.




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