单CPU从宏观上是同时为多个进程服务的,而实际上是轮流为每个进程服务一段时间片,由于CPU的高速高频率,因此我们从宏观上是看不出CPU轮流工作的。这是分时处理。多核处理器由于拥有多个核心,因此能够在同一时间为多个进程服务,并不像单核那样要轮流分配时间片。因此能够更好的工作。但是即使是多核CPU,它的核心也是有限的,当多个任务向CPU请求时,由于CPU核心比任务数少,因此也有“一心多用”了
多任务就像学习,人(CPU)一会学习数学(一个任务),一会学习语文(又一个任务),一会学习英语(第三个任务)第二天又开始数学、语文、英语……这样就半年学完了三本书(三个进程),CPU当然不会那么慢,呵呵……至于多核就像是厨师做满汉全席,一个人(CPU)很难做完,多个人(多核),没人一道菜(一个大任务的一小部分),很快就完成了。这只是简单的比喻,CPU遇到有些任务时,是不可以一部分一部分做的,必须一气呵成,你的电脑就会有点卡似的。有时一个任务也不可以分割,就是说只能让一个“核”去处理,其他“核”休息,帮不上忙。
单CPU可以通过软件分配处理器运算资源,比如在一秒内同时分配给两个程序各0.5秒的运算时间,在没有可调用资源的时候,程序被中断,单CPU可以来回兼顾,但是每个任务的效率都只有二分之一
多核CPU同样依赖程序的任务分配,大多数程序只能调用双核(双线程),他们同时为一个任务运行,并行运算可以在程序内部同时处理两个线程的工作,效率接近两倍