#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=%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=123; 传递整数应为(void *)&data
char *data;
data="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);
}
原文链接: https://www.cnblogs.com/wangj08/archive/2013/01/07/2848992.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/74730
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!