首页 > 代码库 > linuxc多线程参数传递
linuxc多线程参数传递
#include <stdio.h>
#include <pthread.h>
struct stu
{
int age;
char *name;
char *num;
};
void thread1(void)
{
int i;
for(i=0;i<3;i++)
{
printf("This is a pthread1.\n");
usleep(2);
}
}
//传递多个参数
void thread2(void *data)
{
struct stu *stu1=(struct stu*)data;
int i;
for(i=0;i<3;i++)
{
printf("This is a pthread2. age=%d,name=%s,num=%s\n",stu1->age,stu1->name,stu1->num);
usleep(1);
}
}
//传递一个参数
void thread3(void *data)
{
//int *d=(int *)data;
char *d=(char *)data;
int i;
for(i=0;i<3;i++)
{
printf("This is a pthread3. data=http://www.mamicode.com/%s/n",d);
usleep(1);
}
}
int main(void)
{
pthread_t id1,id2,id3;
int i,ret;
ret=pthread_create(&id1,NULL,(void *) thread1,NULL);
if(ret!=0){
printf ("Create pthread1 error!\n");
exit (1);
}
struct stu student;
student.age=10;
student.name="yuguoqing";
student.num="0415214736";
ret=pthread_create(&id2,NULL,(void *) thread2,(void *)&student);
if(ret!=0){
printf ("Create pthread2 error!\n");
exit (1);
}
//int data=http://www.mamicode.com/123; 传递整数应为(void *)&data
char *data;
data=http://www.mamicode.com/"i am yu";
ret=pthread_create(&id3,NULL,(void *) thread3,(void *)data);
if(ret!=0){
printf ("Create pthread3 error!\n");
exit (1);
}
sleep(1);
return (0);
}
#include <pthread.h>
struct stu
{
};
void thread1(void)
{
}
//传递多个参数
void thread2(void *data)
{
}
//传递一个参数
void thread3(void *data)
{
}
int main(void)
{
}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。