【问题标题】:How to get number of threads which was created in "black box" on linux?如何获取在 Linux 上的“黑匣子”中创建的线程数?
【发布时间】:2015-05-07 05:35:34
【问题描述】:

让我用代码澄清我的问题:

int main()
{
    // call for some function which creates threads
    i_create_some_threads();

    // I can get PID
    pid_t pid = getpid();

    // need to get all threads here
    // ???
}

我知道解析 /proc/PID/tasks/,但正在寻找一种在我的程序中执行此操作且无需解析目录/文件的方法。

有什么办法吗?

【问题讨论】:

  • 也许您应该在创建每个新线程时收集并保留它的 ID,而不是稍后尝试将它们全部占卜......
  • 其实不是我自己创造的。正如我所写,i_create_some_threads() 对我来说是一个黑匣子。

标签: c++ c linux multithreading pthreads


【解决方案1】:

涉及的事情

ps -o nlwp <pid>

可能是你想要的。 -o 表示用户定义的输出格式,nlwp 是线程数。这将为您提供如下输出:

 NLWP
    6

只需尝试执行该命令并在您的代码中操作其输出即可。

【讨论】:

  • 谢谢!但我正在寻找类似于 PID 的东西,使用标准函数来获取它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-12
  • 2019-10-08
  • 2018-03-10
  • 2019-02-10
  • 2012-05-19
  • 1970-01-01
  • 2014-02-01
相关资源
最近更新 更多