(原)双核四线程

来源:互联网 发布:东村明子 知乎 编辑:程序博客网 时间:2024/04/30 20:47

最近在学习java的提高篇,再一次遇上了线程方面的问题。让我想起了几个很久以前就想搞清楚的问题:什么是“线程”,什么是“进程”和“程序”,什么又是“双核四线程”。以下是我的一些理解,如果有错误的地方希望高手指出,好让我理解深入一点!
  程序是一段静态的代码,它是应用软件执行的蓝本。进程简单来说就是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身的生命周期。作为执行蓝本的同一段程序,可以被多次加载到系统不同内存区域执行(这大概就可以解析为什么有的软件可以同时打开多个了)。而线程可以说是进程里的一个部分,也就是说一个进程可以只有一个线程或是有很多个线程(顺带一提,我们平常计算机进行通讯(如QQ等)时,信息的交互通讯并不是我们的计算机而是计算机中运行的某个进程)。
  在一些计算机高级语言的书籍中有“多线程”的说法,简单的说就是计算机可以同时运行多个线程(如我们的操作系统能让我们同时操作鼠标和键盘),但书上还说到CPU每次只能运行一个线程(这大概说以前的单核CPU),但如果每次能执行一个线程那不是与前面说的多线程矛盾吗?实际上是CPU的分时机制在起作用,一个程序运行时,进程就能循环获得CPU时间片,然后进程再把时间片分配给线程,这些线程在分配到时间内进行,并且这些线程是交替的进行,由于CPU的执行速度很快,所以线程看起来就像是同时在进行着。
 随着时代发展,科技是日新月异,由以前的单核CPU发展到现在双核CPU,四核CPU等。那究竟是怎么一回事呢?下面就以双核四线程为例子讲解一下。一般来我们的电脑都只有一个CPU,而双核的意思是一个CPU里有两个计算核心,四线程的意思每个核可以同时运行两个线程其实质是在每个核中再模拟出一个核,每个核进行一个线程。这也就是“超线程技术”那为什么要这样做呢,因为我们的CPU在运行一个程序其实还有很多执行单元是被闲置的。模拟出一个核就是为了使用CPU一些空闲的地方(资源)。这里强调一点是用一个物理内核模拟出一个虚拟核,并不代表真的有两个核心的性能,这只能说是提高CPU的性能。为什么这样说,举个例子:假如物理核与它的模拟核中的线程要同时使用同一个执行单元里的东西时就只能一个一个的来!这一点也将影响CPU的性能。所以网上很多都说英特尔的双核四线程比不上AMD的四核四线程!
 好了讲到这里我想大家对线程都有一点基本的了解,本人还是学习计算机里的一新丁,如有说错请见谅!

0 0
原创粉丝点击