CPU线程数怎么设置

CPU线程数怎么设置,第1张

线程数无法修改的,这个在CPU设计出来的时候已经固定下来了。

线程是弯薯英特尔所研发的一种技术,于2002年发布。超线程的猛搭英文是HT技术,全名为Hyper-Threading,中文又名超线程。

超线程技术原先只应用于Xeon处理器中,当时称为埋知者Super-Threading。之后陆续应用在Pentium 4中,将技术主流化。

通过超线程技术,英特尔成为第一家公司实现在一个实体处理器中,提供两个逻辑线程。

实现方法进程与指定cpu绑定

:SetProcessAffinityMask(GetCurrentProcess(),dwMask)

线程与指定cpu绑定:

SetThreadAffinityMask(GetCurrentThread(),dwMask)dwMask为CPU序号的或运算值:1(0001)

代表只运行在CPU1,2(0010)代表只运行在CPU2,3(0011)代表可以运行在CPU1和CPU2

,以此类推。

设置之前最好判断一下系统有几个CPU:

SYSTEM_INFOSystemInfo

GetSystemInfo(&SystemInfo)CPU个数:SystemInfo.dwNumberOfProcessors

当前启用的CPU序号:

SystemInfo.dwActiveProcessorMask

,Mask representing the set of processors configured into the system. Bit 0 is processor 0

bit 31 is processor 31.

CPU亲缘性介绍

按照默认设置,当系统将线程分配给处理器时,Windows使用软亲缘性来进行 *** 作。这意味着如果所有其他因素相同的话,它将设法在它上次运行的那个处理器上运行线程。让线程留在单个处理器上,有助于重复使用仍然在唤宏谨处理器的内存高速缓存中的数据。

有一种新的计算机结构,称为NUMA(非统一内存访问),在该结构中,计算机包含若干块插件板,每个插 件板上有4个CPU和它自己的内存区。

当CPU访问的内存是它自己的插件板上的内存时,NUMA系统运行的性能最好。如果CPU需要访问位于绝源另一个插件板上的内 存时,就会产生巨大的性能降低。在这样的环境中和基,就需要限制来自一个进程中的线程在共享同一个插件版的CPU上运行。

为了适应这种计算机结构的需要,Windows允许你设置进程和线程的亲缘性。换句话说,你可以控制哪个CPU能够运行某些线程。这称为硬亲缘性。请注意,子进程可以继承进程的亲缘性。

注意:(1)无论计算机中实际拥有多少个CPU,Windows98及以前系统只使用一个CPU,上述API不被支持。

(2)在大多数环境中,改变线程的亲缘性就会影响调度程序有效地在 各个CPU之间移植线程的能力,而这种能力可以最有效地使用CPU时间。

应用场景举例:

将UI线程限制在一个CPU,将其他实时性要求较高的线程限制在另一个CPU。这样,当UI需要占用大量CPU时间时,就不会拖累其他实时性要求较高的线程的执行

。同样可以将UI线程与一些优先级不高但耗时的异步运算线程设置在不同CPU上,避免UI给人卡顿的感觉。

一:CPU的核心的作用

cpu核心主要由运算器、基洞控制器、寄存器三部分组成,运算器从字面意思看就是起着运算的作用,控制器就是负责发出cpu每条指令所需要的信息,寄存器就是保存运算或者指令的一些临时文件,这样可以保证更高的速度。

二:CPU线程的作用

源于多任务处理的需要。线程数越多,越有利于同时运行多个程序,因为线程数等同于在某个瞬间CPU能同时并行处理的任务数。

扩展资料:

CPU核心和线程的关系

CPU的核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组,等等,依次类推。

线程数是一种逻辑的概念,简单地说,就是模拟出的CPU核心数。比如,可以通过一个CPU核心数模拟出2线程的CPU,也就是说,这个单核心的CPU被模拟成了一个类似双核心CPU的功能。我们从任务管理器的性能标签页中看到的是两个搏判枯CPU。

cpu线程是一堆寄存器,例如当前指令寄存器地址,堆栈指针,页面寄存器等.x86 cpu刚刚开始支持多线程切换,并在cpu指令级实现线程切换,如任务门。但是 *** 作系统通常不使用此函数,而是仅使用一个线程通过修改堆栈指针来实现线程切换。,64位x86将取消任务门。

因此,cpu的线冲腊程与 *** 作系统所说的线程几乎没有关系。即使CPU不支持线程, *** 作系统也可以实现线程。要说连接,现在多核cpu,有多个虚拟cpu,每个虚拟cpu都有一个cpu线程,为了发挥cpu的最大效果, *** 作系统还必须准备相应数量的线程。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12542430.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存