pthread_create函数传参数
时间: 2023-11-11 07:00:45 浏览: 91
pthread_create传递参数(线程函数传递参数示例)
5星 · 资源好评率100%
pthread_create函数的第四个参数可以传递一个指针,用于向新线程传递参数。具体来说,可以先定义一个结构体,将需要传递的参数存储在结构体中,然后将结构体的地址作为第四个参数传递给pthread_create函数。在新线程中,可以通过强制类型转换将void指针转换为结构体指针,然后获取传递的参数。
例如,定义一个结构体:
```
typedef struct {
int arg1;
char arg2[10];
} ThreadArgs;
```
然后在主线程中创建新线程时,将结构体的地址作为第四个参数传递:
```
ThreadArgs args = { 123, "hello" };
pthread_create(&thread, NULL, threadFunc, &args);
```
在新线程中,可以通过强制类型转换获取传递的参数:
```
void *threadFunc(void *arg) {
ThreadArgs *args = (ThreadArgs *)arg;
printf("arg1=%d, arg2=%s\n", args->arg1, args->arg2);
...
}
```
阅读全文