#include <pthread.h>
#include <stdio.h>
pthread_mutex_t mutex ;
void *print_msg(void *arg){
int i=0;
printf("this is %d\n",(int*)arg);
pthread_mutex_lock(&mutex);
for(i=0;i<3;i++){
printf("output %d: %d\n",(int*)arg, i);
//sleep(1);
}
pthread_mutex_unlock(&mutex);
}
int main(int argc,char** argv){
pthread_t id1;
pthread_t id2, id0;
pthread_mutex_init(&mutex,NULL);
pthread_create(&id2,NULL,print_msg,(void*)2);
pthread_create(&id1,NULL,print_msg,(void*)1);
pthread_create(&id0,NULL,print_msg,(void*)0);
pthread_join(id2,NULL);
//pthread_join(id1,NULL);
pthread_mutex_destroy(&mutex);
return 1;
}
运行结果为:
this is 0
output 0: 0
output 0: 1
output 0: 2
this is 1
output 1: 0