用C语言编写代码监控线程存活时间,要求监控自己创建的线程,该线程每隔两秒打印一次当前迭代次数,最后终止该线程。并且打印线程的创建时间及消亡时间(年月日分秒的格式)。最后打印线程经历的总时间
时间: 2024-05-16 17:13:41 浏览: 88
以下是一个用C语言编写的代码,用于监控线程存活时间:
```c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <time.h>
void *thread_function(void *arg);
int main()
{
pthread_t thread;
int status;
time_t start_time, end_time;
// 记录线程创建时间
time(&start_time);
// 创建线程
if (pthread_create(&thread, NULL, thread_function, NULL) != 0) {
perror("pthread_create failed");
exit(EXIT_FAILURE);
}
// 等待线程结束
if (pthread_join(thread, (void **)&status) != 0) {
perror("pthread_join failed");
exit(EXIT_FAILURE);
}
// 记录线程结束时间
time(&end_time);
// 打印线程创建时间
printf("Thread started at: %s", ctime(&start_time));
// 打印线程结束时间
printf("Thread ended at: %s", ctime(&end_time));
// 计算线程经历的总时间
double total_time = difftime(end_time, start_time);
printf("Total time of the thread: %f seconds\n", total_time);
return 0;
}
void *thread_function(void *arg)
{
int i = 0;
// 每隔两秒打印一次当前迭代次数
while (i < 5) {
printf("Iteration %d\n", i + 1);
sleep(2);
i++;
}
// 终止线程
pthread_exit(NULL);
}
```
这段代码创建一个线程,每隔两秒打印一次当前迭代次数,然后在第5次迭代结束后终止线程。在主函数中,我们记录了线程的创建时间和结束时间,并计算线程经历的总时间。
阅读全文