当前位置: 代码网 > 服务器>服务器>Linux > Linux下CMake编译链接线程库以及线程绑定方式

Linux下CMake编译链接线程库以及线程绑定方式

2026年03月31日 Linux 我要评论
cmake编译链接线程库1. 设置链接选项使用 cmake 编译程序时,需要设置链接选项来链接 pthread 库。在 cmakelists.txt 文件中添加链接选项,即在add_executabl

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...

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

  • Linux安装JDK实践

    一、下载安装包方案一:官网下载oracle官网:oracle | cloud applications and cloud platformoracle官网下载时需要登录账号故这里…

    2026年03月28日 服务器
  • Linux实现多个JDK版本切换

    一、多版本jdk准备可参考此文章安装jdklinux安装jdk二、环境变量修改#进入配置目录(不在此保存的话 ssh链接重新打开会导致下面导入的环境变量失效)vim /etc/p…

    2026年03月28日 服务器
  • Centos7如何升级GCC

    一、环境准备1. 检查当前 gcc 版本gcc --version2. 清理系统环境sudo yum clean allsudo yum update -y二、安装 scl 仓库此…

    2026年03月28日 服务器
  • Linux配置静态IP地址方式

    注:所有此类型文章,非必要或者不是自己的本地服务器,请勿随意操作,出错后可能会导致连接不上服务器,直接炸掉。各类网上的教程使用时也请注意谨慎操作!!谨慎操作!!谨慎操作!!谨慎操作…

    2026年03月28日 服务器
  • 在Ubuntu服务器上部署xinference流程

    在Ubuntu服务器上部署xinference流程

    一、拉取镜像docker pull xprobe/xinference:latest二、启动容器(gpu)docker run -d --name xinfer... [阅读全文]
  • Linux服务器时间设置实现方式

    1、服务器当前时间查看timedatectl2、手动设置系统时间注:此步骤一定生效,但不建议使用毕竟需要精确到毫秒级别(没网另说)timedatectl set-time 'yyy…

    2026年03月28日 服务器

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com