#include<stdlib.h>
#include<pthread.h>
#include<stdio.h>
#include<unistd.h>
struct member
{
int a;
char* s;
};
/*线程1,不传递参数 */
void* create1(void* arg)
{
printf("thread create1 \n");
return (void*)0;
}
/*线程2,传递一个int型参数*/
void* create2(void* arg)
{
int* name;
name=(int*)arg;
printf("thread create2 %d\n",*name);
return 0;
}
/*线程3,传递一个string型参数*/
void* create3(void* arg)
{
char* str;
str=(char*)arg;
printf("thread create3 %s \n",str);
return 0;
}
/*线程4,传递一个struct结构体*/
void* create4(void* arg)
{
struct member *sm;
sm=(struct member *)arg;
printf("thread create4 a=%d,s=%s \n",sm->a,sm->s);
return 0;
}
int main(int argc, char** argv)
{
pthread_t pid1,pid2,pid3,pid4;
int ret;
int test=8;
int* name=&test;
char* a="hello world!";
struct member *sm;
sm=(struct member *)malloc(sizeof(struct member));
sm->a=4;
sm->s="struct test!";
ret=pthread_create(&pid1,NULL,create1,NULL);
pthread_join(pid1,NULL);
if(!ret)
printf("pthread_creat1 ok\n");
ret=pthread_create(&pid2,NULL,create2,(void*)name);
pthread_join(pid2,NULL);
if(!ret)
printf("pthread_creat2 ok\n");
ret=pthread_create(&pid3,NULL,create3,(void*)a);
pthread_join(pid3,NULL);
if(!ret)
printf("pthread_creat3 ok\n");
ret=pthread_create(&pid4,NULL,create4,(void*)sm);
pthread_join(pid4,NULL);
if(!ret)
printf("pthread_creat4 ok\n");
return 0;
}
转载于:https://www.cnblogs.com/bzyzhang/p/5399638.html