2种方式
一、把参数当做全局变量,不过这个藐视代码结构不合理,个人觉得还是结构体指针的方式比较好。
二、定义一个结构体的指针传入
21 struct param{
22 int fd;
23 string deskey;
24 };
45 int fd = 0;
46 string deskey = "";
47 param a;
48 a.fd = fd;
49 a.deskey = deskey;
50 struct param *p;
51 p = &a;
52 int res = pthread_create(&hcheck,NULL,healthcheck,(void *)p);//因为pthread_create传入的参数不能为2个和2个以上,所以必须转成指针的方式传入。
在healthcheck的实现:
948 void *healthcheck(void *p){
949 struct param *pp = (struct param *)p;//这里需要强制类型转换。
950 int fd = pp->fd;
951 string deskey = pp->deskey;
//todo~
964 }