努力尽今夕,少年犹可夸。这篇文章主要讲述Linux/Android NDK线程绑定相关的知识,希望能为你提供帮助。
【Linux/Android NDK线程绑定】在线程中的设置代码如下,首先需要确保你是单个线程在跑!
void bind_to_cpu(int cpu_id) {
int64_t cores = sysconf(_SC_NPROCESSORS_CONF);
PRV_DPT_LOGI("
CPUS:?%lu
"
, cores);
if(cpu_id>
=cores) {
PRV_DPT_LOGE("
bind_to_cpu: assertion error!"
);
return;
}
cpu_set_t mask;
CPU_ZERO(&
mask);
CPU_SET(cpu_id, &
mask);
if(sched_setaffinity(0, sizeof(mask), &
mask)==-1) {
PRV_DPT_LOGE("
bind_to_cpu: failed to set affinity!"
);
return;
}
}void set_thread_name(const char * name){
prctl(PR_SET_NAME, name);
}void *DepthPreview_Thread(void * parent){
// bind this thread to given cpu
set_thread_name("
prv_dpt"
);
cv::setNumThreads(1);
// if you use opencv in android ndk
bind_to_cpu(0);
// some other code here
}
查看对应线程的cpu占用方法如下:
adb shell top -p [线程所属进程的pid,如相机进程就是camerahalserver的pid,也是通过top命令查看] -H | [findstr/grep] [线程名称,采用prctl设置线程名称]
推荐阅读
- uniapp-使用高德地图组件
- 怎样迅速恢复删除的微信聊天记录?有啥好的处理办法呢?_微信
- 微信闪退怎样办?送上安卓手机与iphone处理办法_微信
- 子弹短信出现网络出错怎样办?出现网络出错的处理图文详细教程_其它聊天
- 子弹短信怎样关联QQ?子弹短信关联QQ的图文详细教程_其它聊天
- 微信如何关闭自己的朋友圈?_微信
- qq相册删除的照片怎样恢复?qq空间相册删除照片恢复图文详细教程
- QQ如何设置空白昵称?10分个性
- 微信被人举报被封之后如何解除?_微信