【发布时间】:2026-01-10 03:35:01
【问题描述】:
我正在尝试实现一个系统调用,它允许我获取当前进程的线程数。我是 Linux 内核的新手,所以对它的理解有限。
目前,我正在尝试遍历所有task_structs,并将其线程组组长的PID与当前线程组组长的PID进行比较:
// ...
int nthreads = 0;
struct task_struct *task_it;
for_each_process(task_it) {
if (task_it->group_leader->pid == current->group_leader->pid) {
nthreads++;
}
}
// ...
但是,这似乎不起作用(产生一些 pthread 的快速测试仍然给出 1。group_leader 对同一进程中的所有线程是通用的吗?
【问题讨论】:
-
/proc/$pid/task/不能用于查找进程中有多少线程?
标签: multithreading linux-kernel