互斥锁的使用

    #include     
    #include     
        
    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


你可能感兴趣的:(进程间通信)