#include <pthread.h>
#include <stdio.h>
pthread_mutex_t mutex ;
void *print_msg(void *arg){
int i=0;
pthread_mutex_lock(&mutex); //mutex加锁
for(i=0;i<20;i++)
{
printf("output : %d\n",i);
usleep(200);
}
pthread_mutex_unlock(&mutex); //mutex解锁
}
int main(int argc,char** argv)
{
pthread_t id1;
pthread_t id2;
pthread_mutex_init(&mutex,NULL);
pthread_create(&id1,NULL,print_msg,NULL);
pthread_create(&id2,NULL,print_msg,NULL);
pthread_join(id1,NULL); //守护thread1结束
pthread_join(id2,NULL); //守护thread2结束
pthread_mutex_destroy(&mutex);
return 0;
#include <stdio.h>
pthread_mutex_t mutex ;
void *print_msg(void *arg){
int i=0;
pthread_mutex_lock(&mutex); //mutex加锁
for(i=0;i<20;i++)
{
printf("output : %d\n",i);
usleep(200);
}
pthread_mutex_unlock(&mutex); //mutex解锁
}
int main(int argc,char** argv)
{
pthread_t id1;
pthread_t id2;
pthread_mutex_init(&mutex,NULL);
pthread_create(&id1,NULL,print_msg,NULL);
pthread_create(&id2,NULL,print_msg,NULL);
pthread_join(id1,NULL); //守护thread1结束
pthread_join(id2,NULL); //守护thread2结束
pthread_mutex_destroy(&mutex);
return 0;
}
输出:
output : 0
output : 1
output : 2
output : 3
output : 4
output : 5
output : 6
output : 7
output : 8
output : 9
output : 10
output : 11
output : 12
output : 13
output : 14
output : 15
output : 16
output : 17
output : 18
output : 19
output : 0
output : 1
output : 2
output : 3
output : 4
output : 5
output : 6
output : 7
output : 8
output : 9
output : 10
output : 11
output : 12
output : 13
output : 14
output : 15
output : 16
output : 17
output : 18
output : 19