![]()
毋庸置疑,多核心处理器要比单核心处理器更具优势。下面我们通过多核心多线程技术来简单了解一下四核心处理器相对于单/双 核心处理器的优势所在。说道多核心多线程技术,我们不妨从线程和进程的基本概念入手。
在只有进程概念的操作系统(目前主要是Win XP和Vista)中,进程是存储器、外设等资源的分配单位,同时是处理器调度的对象。为了提高进程内的并发性,在引入线程的操作系统中,把线程作为处理器调度的对象,而把进程作为资源分配单位,一个进程内可同时有多个并发执行的线程。线程(Thread)是一个动态的对象,它是处理器调度的基本单位,表示进程中的一个控制点,执行一系列的指令。由于同一进程内各线程都可访问整个进程的所有资源,因此它们之间的通信比进程间通信要方便;而同一进程内的线程间切换也会由于许多上下文的相同而简化。线程与进程是两个密切相关的概念。我们可以把原来的进程概念理解为只有一个主线程的进程。

线程和进程的关系
如果您觉得以上概念生涩抽象的话,我们不妨换种比较易懂的说法。在Windows平台下,一个EXE是一个程序,只有一个进程,进程中包括了由操作系统分配给这个程序的基本资源,但是处理器并不能直接运行进程,而是要运行该进程中的一个线程。线程本身可以通过操作系统获得处理器的使用权限,从而让自己可以运行。也即说,进程和EXE是点对点的关系,一个进程对应一个EXE,这个进程至少包括一个线程来执行。那么简单来说,只包含一个线程的进程可以叫做单线程程序,如果包含多个的话就可以称之为多线程程序了。
理清进程和线程的基本概念和基本关系之后,我们切入主题,来看看为什么多核心处理器要好于单核心处理器。一个核心(一个物理CPU)在Windows里面算做一个CPU,每个CPU可以得到操作系统分配的处理任务,也就是说某个核心可以执行操作系统中某个进程的线程。对于单线程程序,他的唯一一个线程要想获得CPU时间,必须进入操作系统队列排队,经由操作系统调度之后,获得对某个CPU时间的权利(如果是单核心的话,那么肯定只有1个选择了,多核心的话,自然选择就更多,就好比一个超市,有一个收银窗口和两个收银台的工作效率是不同的)。对于多线程的程序,任何一个线程要执行的话,也要进行排队,在单核心CPU中,所有的线程都要排队在一个CPU上等待顺序执行,在多核心CPU上,同一个进程的多个线程有机会同时分布到多个CPU上并行计算。也即说,处理器核心越多的话,并行计算的机会就越多,工作效率自然就越大。
事实上,多核心处理器种的每颗核心同时间内可以执行各自不同的线程,而单核心处理器无论是支持二线程、四线程还是八线程,它也只能执行一个线程。也就是说,双核心处理器就能够同时执行两个不同的线程,而四核就可以同时执行不同的四个线程,后者的优势显而易见。