利用prctl 函数给线程命名

news2025/1/10 16:16:33
头文件:
#include <sys/prctl.h>
函数原型:
extern int prctl (int __option, ...)
作用:
        这个函数是为系统量身定做的,它的功能取决于第一个参数 option
参数含义:
        option:功能选项
        arg2~arg5:可选功能参数
返回值:
        根据不同功能返回值含义不同

利用 prctl 函数给线程命名

        对于多线程应用程序,如果能够给每个线程命名,那么调试起来的便利是不言而喻的。
使用 prctl 函数,第一个参数置为 PR_SET_NAME 就可以实现给调用者线程命名,
例如下方式
prctl ( PR_SET_NAME , ( unsigned long ) "pthread_1" );
但是注意:设置的名字长度最多 16 个字节
        同理。还可以将第一个参数设置为 PR_GET_NAME 就能获取到调用线程的名字,例如:
char name [ 32 ] = { 0 };
prctl ( PR_GET_NAME , ( unsigned long )name);
简单使用示例:
void* tmain(void *arg)
{
    char name[32]={0}; 
    prctl(PR_SET_NAME, (unsigned long)"jiuyue"); 
    prctl(PR_GET_NAME, (unsigned long)name);
    printf("%s\n", name);
    while (1)
    sleep(1);
}
int main(void)
{
    pthread_t tid;
    pthread_create(&tid, NULL, tmain, NULL);
    pthread_join(tid, NULL);
    return 0;
}
运行之后却是打印了线程名

然后我们通过 ps aux | grep a.out 找到我们的进程号

可以看到进程号为 4623,然后可以通过 ps -L -p 4623 查看该进程号中的线程名字

        可以看到我们设置的线程名确实是设置上去了,也可以通过查看 proc 目录下的进程管理目录去查看进程中的线程情况,例如上面例子:
        我们可以 cd /proc/4623/tast/4624 (其中 4623 是进程号,4624 是线程号) 然后可以查看这个目录中的 stat 文件,可以看到如下结果

也可以查看 status 文件,可以看到如下结果

        这两个文件都记录了线程的一些信息,我们看到线程名发现就是我们通过 prctl 设置的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1022577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动画制作如何选择动作捕捉动画制作服务

近日&#xff0c;长宁ART PARK 大融城迎来了首位虚拟代言人“光艺”&#xff0c;拥有着极具感染力的笑容、数字人形象辨识度极高&#xff0c;在裸眼3D巨屏中&#xff0c;为市民带来虚实交互体验。而这种数字人动画的背后&#xff0c;大多以动作捕捉动画制作技术为主。 *素材源于…

opengl下的视锥体剔除和凸多边形剔除

预备知识 法线方程表达式的一般形式为Ax+By+Cz+D=0,其中(A,B,C)是平面的法向量,D是平面的截距。 平面上一点为P(x0,y0,z0),则点P到平面的距离为:d = |Ax0+By0+Cz0+D| / √(A+B+C) (因为法向量没有归一化,所以得到法向量上的投影要除以法向量长度) 假设n是归一化后的法向…

企业架构LNMP学习笔记50

aof默认是不开的。备份频率是更高的。 aof备份的频率&#xff1a; appendfsync always&#xff1a; 每次收到写命令就立即强制写入磁盘&#xff0c;最慢的&#xff0c;但是保证完全持久化&#xff0c;不推荐使用。 appendfsync everysec&#xff1a; 每秒强制写入磁盘一次&a…

IPO解读丨转向国内帐篷市场,泰鹏智能能否抓住露营经济的红利?

IPO节奏阶段性放缓之际&#xff0c;北交所近日迎来了一家新上市企业。 北交所审议结果显示&#xff0c;山东泰鹏智能家居股份有限公司&#xff08;简称为“泰鹏智能”&#xff09;符合发行条件、上市条件和信息披露要求&#xff0c;成功过会&#xff0c;进入发行准备阶段。 据…

【力扣每日一题】2023.9.10 打家劫舍Ⅳ

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目翻译有些烂&#xff0c;我来二次翻译一下&#xff0c;找出数组中k个两两互不相邻的数&#xff0c;求出它们的最大值。要求最大值尽可…

功能定义-变道碰撞预警

功能概述 变道碰撞预警(Lane Change Warning)功能包括两个子功能&#xff1a; ——盲区监测(Blind Spot Detection)&#xff0c;其功能表现为实时监测驾驶员视野盲区&#xff0c;并在其盲区内出现其他道路使用者时发出提示或警示信息 ——接近车辆报警(Closing Vehicle Warnin…

字符串函数和内存函数详解(1)

&#x1f435;本文将通过函数原型、用法、模拟实现等多个方面全面讲解字符串的库函数 1.strlen&#x1f4da; 1.1函数用法&#x1f4d7; strlen函数用来计算字符串的长度&#xff0c;它会从接收到字符的地址开始读取直到遇到\0&#xff0c;每读取一个非\0的字符长度1&#xff…

荣膺ODCC 三项大奖!记忆科技旗下忆联再获行业认可

9月13—14日&#xff0c;由开放数据中心委员会&#xff08;ODCC&#xff09;举办的“2023 ODCC开放数据中心大会” 在北京举办。忆联母公司记忆科技作为国内领先IT硬件厂商受邀参会&#xff0c;以一站式成果为在场嘉宾带来一场科技盛宴。在本次大会中&#xff0c;忆联凭借极具竞…

华为MTL流程的六个模块初步解析

大家好&#xff01; 昨天华研荟给大家介绍了华为MTL流程的基本概念和发展历程&#xff0c;今天我们来了解下华为MTL流程的六个模块。 如昨天所述&#xff0c;华为的MLT流程主要有六个模块&#xff1a;市场洞察、市场管理、联合创新、销售赋能、激发需求、营销质量管理。 接下…

Spring 工厂

目录 一、Spring 工厂创建复杂对象 1、什么是复杂对象 2、 Spring 工厂创建复杂对象的 3 种方式 &#xff08;1&#xff09;FactoryBean 接口 开发步骤&#xff1a; 细节&#xff1a; FactoryBean 的实现原理[简易版] Factory Bean 总结 &#xff08;2&#xff09;实例…

IGEV深度估计测试代码

生成点云的测试脚本&#xff1a; import sys sys.path.append(core) DEVICE cuda import osos.environ[CUDA_VISIBLE_DEVICES] 0 import argparse import glob import numpy as np import torch from tqdm import tqdm from pathlib import Path from igev_stereo import IG…

2020-2023小样本学习(FSL)顶会论文及开源代码合集(已分类整理)

这次分享的是近四年&#xff08;2020-2023&#xff09;各大顶会中的小样本学习&#xff08;FSL&#xff09;论文&#xff0c;有160篇&#xff0c;涵盖了FSL三大类方法&#xff1a;数据、模型、算法&#xff0c;以及FSL的应用、技术、理论等领域。 由于论文数量太多&#xff0c…

【文末赠书】SRE求职必会 —— 可观测性平台可观测性工程(Observability Engineering)

文章目录 〇、导读一、实现可观测性平台的技术要点是什么&#xff1f;二、兼容全域信号量三、所谓全域信号量有哪些&#xff1f;四、统一采集和上传工具五、统一的存储后台六、自由探索和综合使用数据七、总结★推荐阅读《可观测性工程》直播预告直播主题直播时间预约直播 视频…

福建厦门航空飞机发动机零部件检测3D测量尺寸偏差比对-CASAIM中科广电

航空航天是一个创新型发展国家的尖端命脉&#xff0c;代表着一个国家科学技术的先进水平。在航空航天工业的发展和组成领域中&#xff0c;对于在制造业中的航空航天产品零部件精度要求十分严苛&#xff0c;从前期的设计、中期建造、后期维修检测&#xff0c;任何一个环节、任何…

vue一直自动换行问题解决

html换行主要是由于< div >标签引起的&#xff0c;而vue的一些前端组件本身就会自带< div >&#xff0c;比如el-input的标签拆分出来之后就形成了如下的内容 因此之前我采用 <el-form-item prop"code" v-if"captchaOnOff"><el-inpu…

【算法挨揍日记】day06——1004. 最大连续1的个数 III、1658. 将 x 减到 0 的最小操作数

1004. 最大连续1的个数 III 1004. 最大连续1的个数 III 题目描述&#xff1a; 给定一个二进制数组 nums 和一个整数 k&#xff0c;如果可以翻转最多 k 个 0 &#xff0c;则返回 数组中连续 1 的最大个数 。 解题思路&#xff1a; 首先题目要我们求出的最多翻转k个0后&#x…

BMS电池管理系统的蓝牙芯片 国产高性能 低功耗蓝牙Soc芯片PHY6222

电池管理系统是对电池进行监控与控制的系统&#xff0c;将采集的电池信息实时反馈给用户&#xff0c;同时根据采集的信息调节参数&#xff0c;充分发挥电池的性能。但是&#xff0c;前技术中&#xff0c;在管理多个电池时&#xff0c;需要人员现场调试与设置&#xff0c;导致其…

优化Java代码效率和算法设计,提升性能

在Java开发中&#xff0c;代码效率低下和算法不合理可能导致程序性能下降。下面将从以下几个方面探讨如何优化Java代码和算法设计&#xff0c;以提高程序的性能&#xff1a; 通过这些优化策略&#xff0c;我们可以显著提升Java程序的性能和响应速度。 一、选择合适的数据结构…

这个库,让Python与Excel完美结合

迷途小书童 读完需要 5分钟 速读仅需 2 分钟 1 简介 在现代数据分析和处理中&#xff0c;Python 和 Excel 都扮演着非常重要的角色。如果&#xff0c;能将这两者无缝结合在一起并发挥它们各自的优势&#xff0c;是一个令人兴奋的想法。幸运的是&#xff0c;PyXLL 这个 Excel 插…

Biome-BGC生态系统模型与Python融合技术

Biome-BGC是利用站点描述数据、气象数据和植被生理生态参数&#xff0c;模拟日尺度碳、水和氮通量的有效模型&#xff0c;其研究的空间尺度可以从点尺度扩展到陆地生态系统。 在Biome-BGC模型中&#xff0c;对于碳的生物量积累&#xff0c;采用光合酶促反应机理模型计算出每天…