» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[电脑] 【双核求解】双核cpu的运行原理

引用:
原帖由 Tiberium 于 2009-8-3 15:29 发表
[posted by wap]

知道计算机基本原理的应该知道时钟周期这个概念吧…理论上所有的计算机都是单任务的
请自行搜索smp

不要拿计算机原理的大帽子压人,技术是在进步地


TOP

引用:
原帖由 eos 于 2009-8-3 22:03 发表

我比菜能强一点点,愿洗耳恭听。
双核,形象一点的比喻,就像是银行里,同时开了两个营业窗口

对于你一个人去办理业务,并没有提高速度,事实上,反而会慢一点点,慢在你需要考虑一下,到底是去1号窗口办理,还是二号窗口办理...
通常情况下,银行里都不是你一个人,而是几十个人在排队办业务,这个时候,两个窗口的优势就显现出来了,平均起来比1个窗口的办事效率要高1倍

对于程序来说,大部分程序其实是单线程的,并没有真正利用到多个核心,但是电脑里很多程序在一起运行时,操作系统会把不同的进程调度到不同的cpu核心上,以提高效率。

和银行的情况类似,多核心,提高的是整体“平均效率”,对于某个个体来说,不会成倍提高运行速度,就像你在银行,即使开了100个窗口,你办理业务的时候,面对的也是一个业务员,平常该10分钟办完的业务,不会提高到6秒就完事。

单独一个程序,直接使用多个cpu核心,也不是不可以,但编程上比较有难度,也不容易调试。目前主流操作系统都在下功夫解决这个问题。
btw,从宣传来看,excel2007的一大改变就是支持并发运算,可以利用多个核心来提高速度,很大的亮点。对应于银行的例子,就好比你去办业务的时候,你自己让a窗口的业务员给你办存款,让b窗口的业务员帮你办转帐...

不知道说清楚了没有



TOP

引用:
原帖由 henvelleng 于 2009-8-4 11:19 发表
操作系统的进程库线程库和进程管理都已经做得很完善了,接口也都封装得很好,但问题就在于应用层的程序员水平良莠不齐,没有能力去把握好多进程多线程的使用。其实这玩意儿早就不是什么新概念了,即使在单核cpu时代, ...
请解释一下为什么大多数游戏,双核并没有带来显著性能提高?游戏开发人员都是良莠不齐?比普通的代码工人要强不少吧。

另外,多线程的接口很早就有,但是为什么不常用?所有责任都推给开发人员,说开发人员水平有限,有点像世嘉SS和现在的PS3吧

最后再提一句,事实上大多数GUI库/框架,都不是线程安全的,开多个线程的时候,如何跟UI交互,永远都是个麻烦的问题。大多数情况,维持ui不僵死是可以绕开多线程,而靠timer等机制来解决的。


TOP

发新话题
     
官方公众号及微博