//mutex lock #include<stdio.h> #include<unistd.h> #include<pthread.h> struct test { char a[10]; char b[10]; char c[10]; }yb = {"111","222","33333"}; static int j=0; 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(1); return 0; }
时间: 2024-10-05 22:33:59