我可以通过线程进入应用程序来测量Linux中的CPU使用率吗

我可以通过线程进入应用程序来测量Linux中的CPU使用率吗,c,multithreading,linux-kernel,cpu-usage,core,C,Multithreading,Linux Kernel,Cpu Usage,Core,我有多线程C应用程序(守护进程)。我可以在应用程序中按线程测量CPU使用情况。您可以从/proc//stat解析数据。CPU线路如下所示:- cpu 143359 8217 480152 132054567 45162 5678 24656 0 0 虽然这是一个老问题,但在我自己的谷歌搜索中,它却成为了热门话题。所以我会提供我想出的答案 假设您正在使用pthreads或使用它的库,例如Boost库 您可以使用pthread\u getcpuclockid和clock\u gettime 手册

我有多线程C应用程序(守护进程)。我可以在应用程序中按线程测量CPU使用情况。

您可以从
/proc//stat
解析数据。CPU线路如下所示:-

cpu  143359 8217 480152 132054567 45162 5678 24656 0 0

虽然这是一个老问题,但在我自己的谷歌搜索中,它却成为了热门话题。所以我会提供我想出的答案

假设您正在使用pthreads或使用它的库,例如Boost库

您可以使用
pthread\u getcpuclockid
clock\u gettime

手册页链接

下面是一个以双精度返回当前时间的简单示例


我有一个进程、一个pid和许多线程。每个线程都获得传入连接并进行工作。我开发了线程监控和有趣的信息“thead是如何加载的”
double cpuNow( void ) {
    struct timespec ts;
    clockid_t cid;

    pthread_getcpuclockid(pthread_self(), &cid);
    clock_gettime(cid, &ts);
    return ts.tv_sec + (((double)ts.tv_nsec)*0.000000001);
}