c语言计算线程运行时间 linux
时间: 2023-09-23 10:12:01 浏览: 146
在Linux上,可以使用clock_gettime函数来计算线程运行时间。具体步骤如下:
1. 在线程开始运行之前,调用clock_gettime函数,获取当前时间,并将其保存下来。
2. 在线程结束运行之后,再次调用clock_gettime函数,获取当前时间,并将其保存下来。
3. 计算线程运行时间,即结束时间减去开始时间。
示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <time.h>
void* thread_func(void* arg)
{
struct timespec start_time, end_time;
clock_gettime(CLOCK_MONOTONIC, &start_time); // 获取开始时间
// 线程运行的代码
clock_gettime(CLOCK_MONOTONIC, &end_time); // 获取结束时间
// 计算线程运行时间
long long elapsed_ns = (end_time.tv_sec - start_time.tv_sec) * 1000000000LL +
(end_time.tv_nsec - start_time.tv_nsec);
double elapsed_ms = (double)elapsed_ns / 1000000.0;
printf("Thread elapsed time: %.2f ms\n", elapsed_ms);
pthread_exit(NULL);
}
int main()
{
pthread_t tid;
pthread_create(&tid, NULL, thread_func, NULL);
pthread_join(tid, NULL);
return 0;
}
阅读全文