linux - 如何正确地通过 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 pthread
tid
struct pthread
tid
struct pthread_fake
{
void *dummy[2];
pid_t tid;
};
...
printf("%d\n", ((struct pthread_fake *)pthread_self())->tid)
结果不对,我做错什么了吗?
解决方案
推荐阅读
- assembly - 汇编计数器代码将永远无法工作或循环
- rest - 解压缩 salesforce apex 中的 gzip 响应
- c++ - boost::bind() 类似的东西,但用于函数调用
- vue.js - 如何在 Vue.js 中集成 razorpay
- java - 有没有办法以编程方式获取矢量 pathData 并在画布中使用该 pathData 绘制形状?
- javascript - java - 如何在java脚本中将JSON数据推送到具有重复值的数组
- javascript - 在 Vuejs 脚本标签中需要 JS 类
- android - 对 debounce 的原生使用做出反应在 android 设备上不起作用
- scala - 如何计算spark scala中数据框每一列的缺失值数量?
- azure-ad-b2c - 如何在 azure ad B2C 租户中创建独特的自定义属性