如何在C ++应用程序中打印所有线程的列表?

时间:2019-02-18 23:09:41

标签: c++ linux multithreading logging

如何打印在POSIX OS(例如Linux)的C ++应用程序中运行的线程列表(最好是名称)?

2 个答案:

答案 0 :(得分:1)

您可以获取目录/proc/self/task以获得线程ID的列表。请注意,这是特定于Linux的。不能移植到所有POSIX。

您可以使用pthread_getname_np获取每个线程的名称。线程的名称默认为程序的名称。这是glibc特定的功能;不能移植到所有POSIX甚至所有Linux。

答案 1 :(得分:-1)

其他做相同事情的选项:

1)如果您具有应用程序名称

使用ps -C <application name> -T

  • -C表示命令名称应紧随其后
  • -T列出所有带有SPID的线程

2)如果您具有进程ID,

使用ps -p <process id> -T

  • -p表示进程ID应该紧随其后
  • -T列出所有带有SPID的线程