首页 >运维 >windows运维 >处理器多线程有什么用

处理器多线程有什么用

anonymity
anonymity原创
2019-05-06 17:15:4029737浏览

处理器多线程的作用:可以为高速的运算核心准备更多的待处理数据,减少运算核心的闲置时间;解决了负载均衡问题,充分利用了CPU资源,提高CPU的使用率;可以同时完成几件事情而不互相干扰,缩短了处理大量的IO操作时或处理的情况需要花费的大量时间。

处理器多线程有什么用

什么是处理器?

中央处理器(CPU,central processing unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU 自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。

中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。

在计算机体系结构中,CPU 是对计算机的所有硬件资源(如存储器、输入输出单元) 进行控制调配、执行通用运算的核心硬件单元。CPU 是计算机的运算和控制核心。计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作。

中央处理器主要包括运算器(算术逻辑运算单元,ALU,ArithmeTIc Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。

1.png

一直以来有这样的疑惑,在现如今多核多线程的电脑处理器之下,一个进程中的几个线程是 怎么运行的呢?(是经系统和JVM分配少量的资源 最后轮流切换 时间调度?还是这几个线程分配到不同的核上同时运行?)

处理器CPU怎么处理线程的?

CPU采用的是类似于时间片轮转的机制,也就是说同一时间一条进程提出执行请求时,其他进程只能等待它执行完毕,CPU才会处理其他请求。其他进程相当于在排队等待中。当然了,为了避免某条进程无限制时间的执行,一般会限定一个时间,超时 的话,CPU根据一定的线程调度算法来切换线程。可以看做很多线程在并发执行。其实还是在某一个时间点上只有一个线程在运行罢了。

多核的话,每个核心都是同样的原理。但是两个核心就可以通过系统分配资源,同时执行不同的进程,这个就更复杂了。

每条进程都有CPU分配的进程号的。避免混乱。

cpu线程多有什么好处

理论上说,一个核心只能对应一条线程。而Intel的超线程技术,是利用CPU闲置的资源整合出的虚拟线程,就计算性能来说,是不及物理核心的实际线程好的。但是,却可以在一定程度上提升处理器并行处理的能力。和乱序执行一样,超线程也是一种提高处理器使用效率的方案。

cpu的多线程技术可以为高速的运算核心准备更多的待处理数据,减少运算核心的闲置时间;解决了负载均衡问题,充分利用了CPU资源,提高CPU的使用率。采用多线程的方式可以同时完成几件事情而不互相干扰,缩短了处理大量的IO操作时或处理的情况需要花费大量的时间。

就你举得例子来说。当一个核心处理A任务时,并不是整个核心都在参与工作,还有很大的闲置资源,而这些资源可以用来对B、C、D中某一个或几个进行预处理等等工作。但是,超线程技术的一大问题就是和主线程的争夺。比如虚拟线程和物理实际线程都需要调用某一缓存单元时,虚拟线程就会暂停工作;

但是,如果该单元先于物理线程被虚拟线程调用,那么,虚拟线程就会影响物理主线程的工作,反而降低了执行效率。当下新一代的超线程技术在这个问题上做了比较好的完善,所以效果还是不错的,尽管无法和物理线程相比。当下的一个双核四线程的处理器,比如I3,在并行计算上,能超过物理三核心,和入门级四核心看齐,已经很不错了。

以上是处理器多线程有什么用的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn