windows/linux避免多线程应用程序在多核间切换,影响程序效率
来源:互联网 发布:淘宝自动充值没到账 编辑:程序博客网 时间:2024/06/07 01:53
个人在编写应用程序时,需要指定某个线程在cpu特定核上运行,通过测试,发现应用该函数,对应用程序的效率有很大提高。但是也不是对所有情况都试用:个人认为该优化方法要求线程数量不能太多,其中有一个线程执行频率较高,对实时性要求比较高,比如网络摄像头数据获取线程等等。
在windows平台下的函数为:DWORD_PTR SetThreadAffinityMask(HANDLE hThread, DWORD_PTR dwThreadAffinityMask);其中hThread 为要指定的线程,dwThreadAffinityMask为被指定CPU的核ID,如果为四核处理器,则可以为0x00000001,0x00000002,0x00000004,0x00000008。
在linux平台下的函数为: int pthread_setaffinity_np(pthread_t thread,size_t cpusetsize,const_cpu_set_t *cpuset);
int pthread_getaffinity_np(pthread_t thread,size_t cpusetsize,const_cpu_set_t *cpuset);
***因为对linux不是很了解,所以在此不进行详细介绍,有兴趣的朋友,可以度娘一下
//指定主线程在cpu的某个核
#include <windows.h>
HANDLE hThread;
int main()
{
hThread = GetCurrentThread();
SetThreadAffinityMask(hThread,0x00000001);
while(1)
{
//主线程中需要做的任务
}
return 0;
}
- windows/linux避免多线程应用程序在多核间切换,影响程序效率
- 多线程的程序在多核CPU与单核CPU运行效率有何不同
- 多线程与多核执行效率
- 多核多线程——pthread_setaffinity_np,cpulimit分析CPU资源对应用程序的影响
- 在多核多线程程序中要慎用volatile关键字
- 多线程程序在多核和单核上运行的不同
- Java多核cpu多线程运行效率分析
- Amdahl在多核时代的影响
- AMDAHL定理在多核时代的影响
- ViewState + UpdatePanle害死人,影响程序的效率,应用程序响应速度超慢
- 在多核上使用多线程
- 转帖:DELPHI用const来提高应用程序在多核多线程下的性能
- DELPHI内存详解(5)-用const来提高应用程序在多核多线程下的性能
- linux Kernel 多核多线程编程
- 测试多线程对多核cpu的分支预测的影响
- 避免tomcat热重启影响开发效率---亲测可用
- 并行程序设计-Windows多线程编程-多核1
- 剖析为什么在多核多线程程序中要慎用volatile关键字?
- Hibernate4.1不能读取xml解决方法
- Pearson,Kendall和Spearman三种相关分析方法的异同
- linux redhat静态ip的详细配置
- 27个iOS开发中的小技巧
- 有关于Fragment是否应该有empty constructor的问题
- windows/linux避免多线程应用程序在多核间切换,影响程序效率
- Hibernate 所有缓存机制详解
- iOS 手机号正则表达式(全)
- request.getAttribute和getParameter区别
- 多线程--临界区
- struts2对外输出URL中=和&符号变成unicode问题
- HTML Purifier library for PHP
- python简单错误处理
- python之urllib与urllib2比较