.pthread_create 怎么关闭线程
时间: 2023-08-15 20:13:16 浏览: 120
要关闭线程,可以使用以下步骤:
1. 首先,在主线程中发送一个信号给目标线程,告诉它退出。
2. 目标线程在接收到退出信号后,执行清理操作并退出。
3. 主线程等待目标线程退出,并释放相关资源。
下面是一个示例代码,展示如何关闭线程:
```c
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
pthread_t thread;
// 退出信号的标志位
int exit_flag = 0;
// 目标线程的入口函数
void* thread_func(void* arg) {
// 目标线程在循环中等待退出信号
while (!exit_flag) {
// 执行目标线程的工作任务
// ...
}
// 执行清理操作
// ...
printf("Thread exiting...\n");
pthread_exit(NULL);
}
int main() {
// 创建目标线程
pthread_create(&thread, NULL, thread_func, NULL);
// 等待一段时间,然后发送退出信号
sleep(5);
exit_flag = 1;
// 等待目标线程退出,并释放资源
pthread_join(thread, NULL);
printf("Main thread exiting...\n");
return 0;
}
```
在上面的示例中,主线程创建了一个目标线程,并在等待一段时间后发送了退出信号。目标线程在接收到退出信号后,执行清理操作并退出。最后,主线程等待目标线程退出,并释放相关资源。
请注意,该示例只是一个简单的演示,实际中可能需要根据具体需求进行适当的修改和扩展。
阅读全文