如何理解多线程?又如何理解超线程?

线程与进程

进程:可以理解成一个程序,是占有一定Cpu资源、它是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独 立运行的一段程序。比如说,运行Chrome浏览器,那这个浏览器程序,就是一个进程。
线程:一个进程至少有一个线程。线程是CPU的实际调度和分派的基本单位,他是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源。比如说Chrome浏览器,它就有很多的线程,每一个标签就是一个新的线程,这些线程共享占用着进程所占有的系统资源。

超线程

超线程:假如说我有个单核的CPU,我要是想要运行一个多线程的程序,通常情况下,只能是由Cpu在线程之间来回调度,但是当我开启了超线程,我可以在一个线程执行整数指令集的时候,而恰好在这个时候,另一个线程执行浮点指令集,而这两个指令集分数与整数指令单元和浮点指令单元来执行。那么我就可以同时执行这两个线程,这就叫超线程。而且实际上,是有大量资源被闲置着的。超线程技术允许两个线程同时不冲突地使用CPU中的资源。
指令单元闲置,可以通过超线程的技术来达到提高利用率。这叫做硬件多线程技术。

你可能感兴趣的:(Computer,Science)