gpt4 book ai didi

Linux:在运行时检测一个进程有多个线程

转载 作者:IT王子 更新时间:2023-10-29 00:44:03 26 4
gpt4 key购买 nike

我问的是关于最近的 glibc 的 linux。

有没有办法检测进程是由一个线程还是多个线程组成的?

线程可以由 pthread 或 bare clone() 创建,所以我需要一些相当通用的东西。

UPD:我想从它本身检测当前进程的线程。

最佳答案

检查目录/proc/YOUR_PID/task/是否只包含一个子目录。如果您有多个线程在处理,则将有多个子目录。

硬链接(hard link)计数可用于计算子目录。此函数返回当前线程数:

#include <sys/stat.h>

int n_threads(void)
{
struct stat task_stat;

if (stat("/proc/self/task", &task_stat))
return -1;

return task_stat.st_nlink - 2;
}

关于Linux:在运行时检测一个进程有多个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4125898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com