我如何测量一组特定线程的CPU时间?

我在Linux中运行C ++程序。

有几个线程池(用于计算,用于io,用于…这样的事情)。

系统调用clock()给了我一个方法来测量所有CPU核心在这个过程中花费的CPU时间。

但是,我想测量仅由计算线程池中的线程花费的CPU时间。

我怎样才能做到这一点?

感谢:D

要获得每个线程的CPU clock ID ,您可以使用: pthread_getcpuclockid并使用此CPU clock ID您可以使用clock_gettime检索当前线程CPU时间。

以下是展示相同的示例代码:

 struct timespec currTime; clockid_t threadClockId; //! Get thread clock Id pthread_getcpuclockid(pthread_self(), &threadClockId); //! Using thread clock Id get the clock time clock_gettime(threadClockId, &currTime);