社区
英特尔边缘计算技术
帖子详情
可否在代码中指定线程执行在哪个CPU
xingzhou
2008-04-25 03:59:55
目前的操作系统(windows)的CPU调度算法并不能充分利用多核优势(简单观测,双核CPU往往满负荷时,才50%,但鼠标响应已经有点困难了,同样,4核会是25%),所以,如果能够在程序中自己选择让线程运行在哪个CPU下,效果可能会更理想,但不知是否有这种可能,如何编码或有什么特殊指令呢?
...全文
319
5
打赏
收藏
可否在代码中指定线程执行在哪个CPU
目前的操作系统(windows)的CPU调度算法并不能充分利用多核优势(简单观测,双核CPU往往满负荷时,才50%,但鼠标响应已经有点困难了,同样,4核会是25%),所以,如果能够在程序中自己选择让线程运行在哪个CPU下,效果可能会更理想,但不知是否有这种可能,如何编码或有什么特殊指令呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xingzhou
2008-05-05
打赏
举报
回复
[Quote=引用 2 楼 Amuro1987218 的回复:]
//控制某个线程在哪个CPU上运行
DWORD_PTR SetThreadAffnityMask(HANDLE hThread, //线程句柄
DWORD_PTR dwThreadAffnityMask);//一个位屏蔽,指明要使用那些CPU
[/Quote]
多谢,我尝试下。
intel_zhenyuwang
2008-04-28
打赏
举报
回复
Intel TBB 暂时还不支持。
Amuro1987218
2008-04-25
打赏
举报
回复
http://blog.csdn.net/zfive5/archive/2007/01/31/1499378.aspx
可以参考这个.
上面回的有点问题.原型是
DWORD_PTR SetThreadAffinityMask(
HANDLE hThread,
DWORD_PTR dwThreadAffinityMask
);
Amuro1987218
2008-04-25
打赏
举报
回复
//控制某个线程在哪个CPU上运行
DWORD_PTR SetThreadAffnityMask(HANDLE hThread, //线程句柄
DWORD_PTR dwThreadAffnityMask);//一个位屏蔽,指明要使用那些CPU
xingzhou
2008-04-25
打赏
举报
回复
举个实际情况:
播放高清对CPU是个挑战,因为数据量太大,但如果能够让分离器、解码器、其他等渲染都分散在某个CPU,程序处理好数据之间的衔接,效率会大幅度上升。我们可能就不必看到1个CPU满负荷、其他CPU却闲着、画面不流畅的尴尬状况了。
如何查看
线程
运行在哪个
CPU
上面
之前的博文我们已经介绍了如何通过
代码
实现某个
线程
运行在某个
CPU
上,本篇我们通过实际运行实例来验证
线程
按照我们的设置运行在特定的
CPU
上
python如何让进程运行在
指定
的
cpu
上_python之
线程
和进程(9.18)
这几天由于遇到了python
中
的多
线程
和多进程的问题,所以查了查资料,随便尝试了一下。首要问题就是,什么是
线程
,而什么又是进程?在此贴出一位大佬的知乎答案,我觉得说的很好,就不再重复说了,答案在这,https://www.zhihu.com/search?type=content&q=%E7%BA%BF%E7%A8%8B%E4%B8%8E%E8%BF%9B%E7%A8%8B总结而言,就是两...
主动设置进程
CPU
绑定(
CPU
亲和性)解决QT多
线程
在Linux上只使用单核的问题
因此通过pthread_setaffinity_np在主
线程
中
设置亲和性(了解到子
线程
会继承的),但是不起效果,有继续翻博客,发现还有进程亲和性的设置函数,想着是不是设置主
线程
不行,应该设置进程呢,于是用sched_setaffinity来设置(见本博客开头的插图
中
的
代码
)发现可以了。使用QT的多
线程
进行计算密集型任务,
线程
数不少于
CPU
的逻辑处理单元数,但是在Linux上查看系统监视器,总是只占用一个核(不超过100%),Window下是没有这个问题的。查看特定某个进程
线程
使用内存情况。
线程
与
线程
控制
线程
线程
定义 Linux
中
的所有
执行
流,都叫做轻量级进程(LWP),轻量级进程又叫
线程
线程
在进程内部运行:
线程
在进程地址空间内运行 在Linux
中
,站在
CPU
的角度,能否识别该task_struct是进程还是
线程
? 不能,
CPU
不需要识别,
CPU
只关心一个一个的单个
执行
流,每个task_struct就是一个
执行
流 在
CPU
眼
中
的task_struct<=OS原理的tas
多任务——
线程
每个
线程
默认有一个名字,尽管上面的例子
中
没有
指定
线程
对象的name,但是python会自动为
线程
指定
一个名字。当
线程
的run()方法结束时该
线程
完成。无法控制
线程
调度程序,但可以通过别的方式来影响
线程
调度的方式。确保了某段关键
代码
只能由一个
线程
从头到尾完整地
执行
阻止了多
线程
并发
执行
,包含锁的某段
代码
实际上只能以单
线程
模式
执行
,效率就大大地下降了由于可以存在多个锁,不同的
线程
有不同的锁,并试图获取对方持有的锁时,可能会造成死锁。Python的QueueFIFOQueueLIFO。
英特尔边缘计算技术
567
社区成员
7,024
社区内容
发帖
与我相关
我的任务
英特尔边缘计算技术
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
复制链接
扫一扫
分享
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章