#include<iostream>
#include<pthread.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<errno.h>
using namespace std;
pthread_cond_t taxiarrive = PTHREAD_COND_INITIALIZER;
//int pci = pthread_cond_init(&taxiarrive,NULL);
pthread_mutex_t menarrive = PTHREAD_MUTEX_INITIALIZER;
//int pmi = pthread_mutex_init(&menarrive,NULL);
int mencount = 0;
void* taxicome(void* name){
cout<<"taxi: "<<(char*)name<<"arrived"<<endl;
while(1){
pthread_mutex_lock(&menarrive);
if(mencount > 0){
pthread_cond_signal(&taxiarrive);
pthread_mutex_unlock(&menarrive);}
pthread_mutex_unlock(&menarrive);}
pthread_exit((void*)0);}
void* mencome(void* name){
cout<<(char*)name<<" come,need a taxi!"<<endl;
pthread_mutex_lock(&menarrive);
mencount++;
pthread_cond_wait(&taxiarrive,&men
./nptl/pthread_mutex_lock.c:81: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed
最新推荐文章于 2024-12-18 15:07:51 发布