首页 > 解决方案 > 如何正确地通过 pthread_self() 整理?

问题描述

正如我在标题中提到的,我试图tid通过pthread_self(). (我这样做的原因是因为我试图避免系统调用)

我知道可能没有便携式解决方案,没关系。我正在寻找适用于特定环境的解决方案。

我的目标环境是使用 POSIX pthread 和

glibc 版本是 ldd (Ubuntu GLIBC 2.31-0ubuntu9.1) 2.31

在 Ubuntu 20.04 下运行。

以下是我到目前为止所做的,

我试图将其作为成员的返回值pthread_self转换为。另外,进入by link的定义,前面有两个成员。strcut pthreadtidstruct pthreadtid

struct pthread_fake
{
    void *dummy[2];
    pid_t tid;
};
...
printf("%d\n", ((struct pthread_fake *)pthread_self())->tid)

结果不对,我做错什么了吗?

标签: linuxpthreads

解决方案


推荐阅读