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()一起使用.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。