pthread_create創建綫程關閉
时间: 2023-09-01 18:07:30 浏览: 43
要关闭一个由`pthread_create()`函数创建的线程,你可以在线程函数中使用`pthread_exit()`函数来终止线程的执行。调用`pthread_exit()`会导致线程立即退出,并将控制返回给创建该线程的线程。
另外,如果你想要在一个线程中终止另一个线程,你可以使用`pthread_cancel()`函数来发送取消请求。被取消的线程需要在适当的地方调用`pthread_testcancel()`函数来检查取消请求,并在合适的时机终止自己的执行。
需要注意的是,当一个线程终止时,它占用的资源不会自动释放。你需要确保在终止之前正确释放分配的资源,以避免内存泄露或其他问题。
以下是一个简单的示例代码,展示了如何使用`pthread_exit()`来关闭一个线程:
```c
#include <pthread.h>
#include <stdio.h>
void* thread_func(void* arg) {
// 线程执行的代码
printf("Thread is running\n");
// 终止线程
pthread_exit(NULL);
}
int main() {
pthread_t thread;
// 创建线程
pthread_create(&thread, NULL, thread_func, NULL);
// 等待线程结束
pthread_join(thread, NULL);
printf("Thread has exited\n");
return 0;
}
```
这是一个简单的示例,当线程执行到`pthread_exit()`时,它会立即退出,并返回控制给主线程。在主线程中,通过调用`pthread_join()`函数等待线程结束,以确保线程已经正常退出。