栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

POSIX API调用以列出在进程中运行的所有pthread

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

POSIX API调用以列出在进程中运行的所有pthread

似乎没有任何可移植的方式枚举进程中的线程。

Linux具有

pthread_kill_other_threads_np
,看起来像是原始的纯用户级pthreads实现的遗留物,该实现可能无法或无法像今天所记录的那样工作。它不会告诉您有多少线程。

通过查找

/proc/self
(或对于其他过程,
/proc/123
)可以获得很多有关过程的信息。尽管许多unice都有一个具有该名称的文件或目录,但是布局是完全不同的,因此任何使用的代码
/proc
都是特定于Linux的。的文件
/proc
documentation/filesystems/proc.txt
在内核源代码。特别是,
/proc/self/task
每个线程都有一个子目录。子目录的名称是LWP
id。不幸的是,[1][2][3]似乎没有一种将LWPID与pthreadID关联的方法(但是
gettid(2)
如果您使用它,则可以得到自己的线程ID)。当然,阅读
/proc/self/task
不是原子的。线程数量可以通过以下方式原子地获得
/proc/self/status

(但是,在您采取行动之前,它当然可能会发生变化)。

如果从Linux
pthreads获得的有限支持无法实现所需的功能,则另一种策略是发挥动态链接技巧,以将自己的

pthread_create
日志版本提供给以后可以检查的数据结构。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/367930.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号