C语言新建一个线程
时间: 2023-07-13 22:25:10 浏览: 129
在 C 语言中,可以使用多种方式创建线程。下面介绍一种常用的方法:使用 pthread 库。
首先需要在代码中包含 pthread 库的头文件:
```c
#include <pthread.h>
```
然后定义一个函数作为线程的入口点,该函数必须接受一个 void 指针类型的参数,返回值为 void 指针类型。例如:
```c
void *thread_entry(void *arg)
{
// 线程的具体实现
return NULL;
}
```
在主函数中,使用 pthread_create 函数创建一个新的线程,该函数接受四个参数:
1. 一个指向 pthread_t 类型变量的指针,用于存储新线程的 ID。
2. 一个指向 pthread_attr_t 类型变量的指针,用于指定新线程的属性。如果不需要特殊属性,可以传入 NULL。
3. 一个指向线程入口函数的指针。
4. 一个指向线程入口函数的参数的指针。
例如:
```c
pthread_t my_thread;
pthread_create(&my_thread, NULL, thread_entry, NULL);
```
这样就创建了一个新的线程,并执行了 thread_entry 函数。注意,如果需要传递多个参数,可以将它们打包成一个结构体,然后传递该结构体的地址作为参数。
最后,使用 pthread_join 函数等待线程的结束,该函数接受两个参数:
1. 等待结束的线程的 ID。
2. 一个指向 void 指针类型的变量的指针,用于存储线程的返回值。如果不需要返回值,可以传入 NULL。
例如:
```c
void *result;
pthread_join(my_thread, &result);
```
这样就等待了 my_thread 线程的结束,并获取了它的返回值。如果不需要等待线程的结束,可以使用 pthread_detach 函数将线程分离,使其在结束时自动释放资源。
阅读全文