//mutex lock
#include<stdio.h>
#include<unistd.h>
#include<pthread.h>
struct test
{
char a[];
char b[];
char c[];
}yb = {"","",""};
static int j=;
pthread_mutex_t mutex_1 = PTHREAD_MUTEX_INITIALIZER;;
void Print1(struct test *arg)
{
pthread_mutex_lock(&mutex_1);
printf("a=%s,b=%s,c=%s,d=%X,j=%d\n",arg->a,arg->b,arg->c,pthread_self(),j++);
pthread_mutex_unlock(&mutex_1);
pthread_exit((void *)j);
printf("Never Coming.\n");
}
int main()
{
pthread_t pid1,pid2,pid3;
void *set;
pthread_create(&pid1,NULL,&Print1,&yb);
pthread_create(&pid2,NULL,&Print1,&yb);
pthread_create(&pid3,NULL,&Print1,&yb);
pthread_join(pid1,&set);
printf("pid1 exit coed %d\n",(int)set);
pthread_join(pid2,&set);
printf("pid2 exit coed %d\n",(int)set);
pthread_join(pid3,&set);
printf("pid3 exit coed %d\n",(int)set);
sleep();
return ;
}