社区
VB
帖子详情
线程程序如何将指定线程绑定到指定的CPU上运行
fanzouguo
2010-12-25 08:27:27
如题,我想知道怎么将一个线程指定到多核CPU的具体某一核上运行。
网上搜了很多资料,大多是C++或VC的,.NET下的只找到一个:
Process.GetCurrentProcess().ProcessorAffinity = (System.IntPtr)4;
但是对其意义不是很了解,而且好像这个方法是指定进程,而不是线程的。
在此请教一下各位,谢谢。
...全文
592
2
打赏
收藏
线程程序如何将指定线程绑定到指定的CPU上运行
如题,我想知道怎么将一个线程指定到多核CPU的具体某一核上运行。 网上搜了很多资料,大多是C++或VC的,.NET下的只找到一个: Process.GetCurrentProcess().ProcessorAffinity = (System.IntPtr)4; 但是对其意义不是很了解,而且好像这个方法是指定进程,而不是线程的。 在此请教一下各位,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fanzouguo
2010-12-25
打赏
举报
回复
谢谢如梦,但是我不明白,ProcessorAffinity 是不是只能对进程指定CPU呢,我是想对线程进行绑定。
wuyq11
2010-12-25
打赏
举报
回复
C++程序可以使用WinAPI里的SetThreadAffinityMast()函数,将程序固定到某个特定的CPU上执行。
通过Process类的ProcessorAffinity属性就可以达到绑定CPU的目的
System.Diagnostics.Process p = System.Diagnostics.Process.GetCurrentProcess();
p.ProcessorAffinity = (IntPtr)0x0001;
http://msdn.microsoft.com/zh-tw/library/system.diagnostics.process.processoraffinity(VS.80).aspx
将
线程
绑定
在
指定
的
CPU
上
运行
将
线程
绑定
在
指定
的
CPU
上
运行
void main() { int
cpu
_num = sysconf(_SC_NPROCESSORS_CONF); pthread_t tid;
cpu
_set_t mask;
cpu
_set_t get;
CPU
_ZERO(&mask);
CPU
_ZERO(&get); //
绑定
在第三个
cpu
核心上
CPU
_SET(3, &mask); pthread_create(&tid, NULL, f_thread, (voi
linux内核
线程
绑定
到单个核,linux 将进程或者
线程
绑定
到
指定
的
cpu
上
基本概念
cpu
亲和性(affinity)
CPU
的亲和性, 就是进程要在
指定
的
CPU
上尽量长时间地
运行
而不被迁移到其他处理器,也称为
CPU
关联性;再简单的点的描述就将
指定
的进程或
线程
绑定
到相应的
cpu
上;在多核
运行
的机器上,每个
CPU
本身自己会有缓存,缓存着进程使用的信息,而进程可能会被OS调度到其他
CPU
上,如此,
CPU
cache命中率就低了,当
绑定
CPU
后,
程序
就会一直在
指定
的
cpu
跑,不...
Windows下
绑定
线程
到
指定
CPU
Windows下
绑定
线程
到
指定
CPU
目的 解决对实时性要求高的信号处理。 代码 DWORD_PTR SetThreadAffinityMask( HANDLE hThread, DWORD_PTR dwThreadAffinityMask ); 参数说明: hThread:要限制哪个
线程
dwThreadAffinityMask:要在哪个核心上
运行
线程
参数说明: (1)要知道当前
线程
的句柄,可以通过函数:GetCurrentThread()得到。 (2)dwMask为
CPU
序号的或运算值:1(00
C#
线程
绑定
到
指定
cpu
c#
cpu
线程
绑定
linux下把进程/
线程
绑定
到特定
cpu
核上
运行
概述 现在大家使用的基本上都是多核
cpu
,一般是4核的。平时应用
程序
在
运行
时都是由操作系统管理的。操作系统对应用进程进行调度,使其在不同的核上轮番
运行
。 对于普通的应用,操作系统的默认调度机制是没有问题的。但是,当某个进程需要较高的
运行
效率时,就有必要考虑将其
绑定
到单独的核上
运行
,以减小由于在不同的核上调度造成的开销。 把某个进程/
线程
绑定
到特定的
cpu
核上后,该进程就会一直在此核上
运行
,不...
VB
16,721
社区成员
110,526
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章