对‘pthread_create后台线程
时间: 2023-09-20 08:04:29 浏览: 169
创建一个后台线程的步骤如下:
1. 包含头文件`pthread.h`。
2. 声明一个函数,作为线程的入口点,函数原型应为`void* start_routine(void *arg)`。
3. 在`main()`函数中,使用`pthread_t`类型的变量声明一个线程ID。
4. 使用`pthread_create()`函数创建一个新线程,将线程ID作为参数,并传递线程入口函数和参数。
5. 在`main()`函数中,可以继续执行其他任务。
6. 如果需要等待子线程退出,可以使用`pthread_join()`函数传入线程ID和一个指向退出值的指针作为参数。这将阻塞主线程,直到子线程结束。
7. 可以使用`pthread_exit()`函数在子线程中退出线程。
下面是一个示例代码,演示了如何创建一个后台线程并等待它的退出:
```c
#include <stdio.h>
#include <pthread.h>
// 线程例程,创建一条线程之后,去执行这个函数
void* start_routine(void *arg) {
sleep(5);
printf("start_routine\n");
pthread_exit(NULL);
}
int main() {
// 创建一条线程
pthread_t thread;
pthread_create(&thread, NULL, start_routine, NULL);
printf("main\n");
// 等待子线程退出
pthread_join(thread, NULL);
return 0;
}
```
在这个示例中,首先声明了一个`start_routine()`函数作为线程的入口点。在`main()`函数中,使用`pthread_create()`函数创建一个新线程,并将`start_routine`作为入口函数。然后,主线程继续执行,打印"main"。最后,使用`pthread_join()`函数等待子线程的退出。在子线程中,使用`pthread_exit()`函数退出线程。注意,`pthread_exit()`函数不会终止整个程序,而只会终止当前线程。
这样,我们就创建了一个后台线程,并等待它的退出。请根据你的需求修改代码。
阅读全文