Tag: 时间测量

如何测量C中每个线程的时间?

我正在研究具有多个线程的代码,我想打印完成任务所花费的时间,我分配了第i个线程。 含义我想打印每个线程使用doSomeThing函数完成的时间 int main(int argc, char *argv[]){ // … i=0; while (i < NumberOfThreads){ check = pthread_create(&(id_arr[i]), NULL, &doSomeThing, &data); i++; } // … } void* doSomeThing(void *arg){ // … } 如果我在pthread_create之前添加gettimeofday(&thread_start, NULL)然后在pthread_create之后添加gettimeofday(&thread_end, NULL) ,我实际上会测量每个线程花费的时间还是主要花费的时间? 如果我把gettimeofday放在doSomething函数中,它们不会创建竞争条件吗? 如果您对如何测量每个线程的时间有任何想法,请告诉我,谢谢。