cmake编译链接线程库
1. 设置链接选项
使用 cmake 编译程序时,需要设置链接选项来链接 pthread 库。
在 cmakelists.txt 文件中添加链接选项,即在add_executable()下面添加以下代码将 pthread 链接库添加到目标可执行文件中:
target_link_libraries(target_name pthread)
target_name为目标可执行文件的名称。
2. 进行编译
使用make命令进行编译即可。
线程绑定
程序中使用多线程时,通常会将线程指定到某个cpu上运行,这样可以减少竞争,提高程序应用性能。但是linux下和windows的写法不太一样,下面就总结一下在linux下的线程绑定方法。
主要使用pthread_setaffinity_np()函数将线程绑定到指定的cpu,该函数需要传入线程id和一个cpu集合参数,其中cpu集合参数表示要使用的cpu编号。
具体步骤如下:
1. 添加头文件
#include <pthread.h>
2. 定义线程执行函数
void *thread_func(void *arg)
{
// 线程执行的任务
// ...
}
3. 创建线程
pthread_t thread_id; pthread_create(&thread_id, null, &thread_func, null);
4. 设置cpu集合
cpu_set_t cpuset; cpu_zero(&cpuset); cpu_set(cpu_id, &cpuset);
5. 线程绑定到指定cpu
pthread_setaffinity_np(thread_id, sizeof(cpuset), &cpuset);
6. 等待子线程执行完毕
pthread_join(thread_id, null);
注:上述中cpu_id为绑定的cpu编号,即 0,1,2...
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论