我正在处理具有多个线程的代码,我想打印我完成分配给第 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){
// ...
}
如果我在之前添加gettimeofday(&thread_start, NULL)
然后在之后pthread_create
添加,我实际上是在测量每个线程花费的时间还是只是主要花费的时间?如果我把函数放在里面,他们不会创造竞争条件吗?gettimeofday(&thread_end, NULL)
pthread_create
gettimeofday
doSomething
如果您对如何测量每个线程的时间有任何想法,请告诉我,谢谢。