注意:我已经编辑了上一个问题,并将其更改为一个新问题,因为我的问题被否决,因此无法发布新问题。
我编写了一个简单的c ++程序来使用一些线程进行日志记录。我已经计算了初始时间和最终时间。我希望使用difftime(以微秒为单位)来计算执行时间,但是我得到的输出为0。
pthread_mutex_t loc;
void* print(void *)
{
pthread_mutex_lock(&loc);
static int j = 0;
for(int i = 0;i<100;i++)
cout<<"logging "<<j<<"\n";
j++;
pthread_mutex_unlock(&loc);
}
main()
{
time_t initial;
time(&initial);
pthread_t p[4];
if(pthread_mutex_init(&loc, NULL) ==0)
{
pthread_create(&p[0], NULL, print, (void *)0);
cout<<"flag 0\n";
pthread_create(&p[1], NULL,print,(void *)1);
cout<<"flag 1\n";
pthread_create(&p[2],NULL,print, (void *)2);
cout<<"flag 2\n";
pthread_create(&p[3],NULL,print,(void *)3);
pthread_join(p[0],NULL);
pthread_join(p[1],NULL);
pthread_join(p[2],NULL);
pthread_join(p[3],NULL);
time_t final;
time(&final);
double tim = (double)difftime(final, initial)/1000000;
cout<<tim;
}
pthread_mutex_destroy(&loc);
}