前端之家收集整理的这篇文章主要介绍了
pthreads:以编程方式收集有关在不同状态上花费的时间的信息?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在C,Linux 3.2中:有没有办法以编程方式收集有关某些程序上每个pthread创建线程的状态的统计信息?例如,我想让每个线程花时间运行,并处于空闲状态.
最佳答案
clock_gettime()可以返回特定于线程的
cpu时间.简单地说:
struct timespec ts;
clock_gettime(CLOCK_THREAD_cpuTIME_ID,&ts);
但根据我的理解,这是该线程的用户和系统时间的总和.您还应该在手册页的末尾考虑有关SMP系统的警告消息.
另外,如果您不想要当前线程的时序信息,但是在某些pthread上,您可以使用int pthread_getcpuclockid(pthread_t thread,clockid_t * clock_id)将clockid_t与clock_gettime()一起使用.