如何计算正在运行的线程数(pthreads)?

时间:2011-10-27 08:12:34

标签: c multithreading unix pthreads posix

如果我搜索计算应用程序的线程数,则所有答案都涉及top等外部程序。我想计算应用程序本身的线程。

我无法在创建线程时添加代码,因为它发生在不可变库中。

我无法阅读/proc

这是一个在几个不同的Unices上运行的C / pthreads程序。

3 个答案:

答案 0 :(得分:1)

如果您无法阅读/proc,那么您有点麻烦,除非您的程序与另一个阅读/proc的程序进行通信

如果您因为可移植性问题而不想阅读/ proc,您可以使用一个库来抽象一点,例如libproc

答案 1 :(得分:0)

你可以为pthread_create编写一个小包装器,它在你连接不可变库之后计算创建的线程并链接到该包装器。

答案 2 :(得分:-1)

使用top -H。但是很有可能,如果你不能阅读proc,top无论如何都行不通。如果是这样的话,没有简单的方法,这将取决于您的具体系统。