在Linux C程序中,如何打印pthread库创建的线程的线程id?例如,我们如何通过getpid()得到一个进程的pid.

推荐答案

函数pthread_self()将给出当前线程的线程ID.

pthread_t pthread_self(void);

pthread_self()函数返回调用线程的Pthread句柄.pthread_self()函数不返回调用线程的整数线程.必须使用pthread_getthreadid_np()返回线程的整数标识符.

注:

pthread_id_np_t   tid;
tid = pthread_getthreadid_np();

速度明显快于这些调用,但提供相同的行为.

pthread_id_np_t   tid;
pthread_t         self;
self = pthread_self();
pthread_getunique_np(&self, &tid);

C++相关问答推荐

rSP堆栈指针在返回函数调用的值时有任何用途吗?

为什么信号量为空= 0,而不是阻塞?

正在try 将文件/文件夹名从目录 struct 存储到链接列表

如果包含路径不存在,我的编译器可以被配置为出错吗?(GCC、MSVC)

在一个小型玩具项目中实现终端历史记录功能

在C++中头文件中声明外部 struct

为什么GDB/MI进程的FIFO循环中有read()阻塞

如何在c++中包装返回空*的函数

以下声明和定义之间的区别

为静态库做准备中的奇怪行为

N的值设置为0或1(未定义的行为),而我正在try 学习realloc和Malloc的用法

GDB输出ARM助记符

从uint8_t*转换为char*可接受

如何仅使用软件重新初始化STM32微控制器中的USB枚举?

用C++构建和使用DLL的困惑

C:如何将此代码转换为与数组一起使用?

C中的数组下标和指针算法给出了不同的结果

如何在Rust中处理C的longjmp情况?

C语言程序流程解释

在带中断的循环缓冲区中使用 易失性