【发布时间】:2014-12-31 08:40:49
【问题描述】:
我正在编写具有多个线程的代码,我想打印我完成分配给第 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 函数中,它们不会创建竞争条件吗?
如果您对如何测量每个线程的时间有任何想法,请告诉我,谢谢。
【问题讨论】:
标签: c multithreading time pthreads time-measurement