崇信县门户网站首页,销售平台网站建设,网站空间不续费,手机上那个网站做农产品推广比较好情景1#xff1a;Jack开着一辆出租车来到一个网站停车。看见没人就走了。过段时间。Susan来到网站准备乘车。可是没有来#xff0c;于是就等着。过了一会Mike开着车来到了这个网站#xff0c;Sunsan就上了Mike的车走了。如图所看到的#xff1a;程序实现该情景#xff1a;… 情景1Jack开着一辆出租车来到一个网站停车。看见没人就走了。过段时间。Susan来到网站准备乘车。可是没有来于是就等着。过了一会Mike开着车来到了这个网站Sunsan就上了Mike的车走了。如图所看到的程序实现该情景#include stdio.h
#include stdlib.h
#include unistd.h
#include pthread.hpthread_cond_t taxicond PTHREAD_COND_INITIALIZER;
pthread_mutex_t taximutex PTHREAD_MUTEX_INITIALIZER;void *traveler_arrive(void *name)
{char *p (char *)name;printf (Travelr: %s need a taxi now!\n, p);pthread_mutex_lock(taximutex);pthread_cond_wait(taxicond, taximutex);pthread_mutex_unlock(taximutex);printf (traveler: %s now got a taxi!\n, p);pthread_exit(NULL);
}void *taxi_arrive(void *name)
{char *p (char *)name;printf (Taxi: %s arrives.\n, p);pthread_cond_signal(taxicond);pthread_exit(NULL);
}int main (int argc, char **argv)
{char *name;pthread_t thread;pthread_attr_t threadattr;pthread_attr_init(threadattr);name Jack;pthread_create(thread, threadattr, taxi_arrive, name);sleep(1);name Susan;pthread_create(thread, threadattr, traveler_arrive, name);sleep(1);name Mike;pthread_create(thread, threadattr, taxi_arrive, name);sleep(1);return 0;
} /* ----- End of main() ----- */情景2Jack开着一辆出租车来到一个网站停车看见没人就等着。过段时间Susan来到网站准备乘车看见了Jack的出租车于是就上去了。过了一会Mike开着车来到了这个网站看见没人救等着。如图所看到的程序实现该情景#include stdio.h
#include stdlib.h
#include unistd.h
#include pthread.hint travelercount 0;
pthread_cond_t taxicond PTHREAD_COND_INITIALIZER;
pthread_mutex_t taximutex PTHREAD_MUTEX_INITIALIZER;void *traveler_arrive(void *name)
{char *p (char *)name;pthread_mutex_lock(taximutex);printf (traveler: %s need a taxi now!\n, p);travelercount;pthread_cond_wait(taxicond, taximutex);pthread_mutex_unlock(taximutex);printf (traveler: %s now got a taxi!\n, p);pthread_exit(NULL);
}void *taxi_arrive(void *name)
{char *p (char *)name;printf (Taxi: %s arrives.\n, p);for(;;){if(travelercount){pthread_cond_signal(taxicond);travelercount--;break;}}pthread_exit(NULL);
}int main (int argc, char **argv)
{char *name;pthread_t thread;pthread_attr_t threadattr;pthread_attr_init(threadattr);name Jack;pthread_create(thread, threadattr, taxi_arrive, name);sleep(1);name Susan;pthread_create(thread, threadattr, traveler_arrive, name);sleep(3);name Mike;pthread_create(thread, threadattr, taxi_arrive, name);sleep(4);return 0;
} /* ----- End of main() ----- */author: fulinuxE-mail: fulinuxsina.comblog: blog.csdn.net/fulinus 转载于:https://www.cnblogs.com/clnchanpin/p/6910099.html