• 大小: 1KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: 其他
  • 标签: 线程  

资源简介

一个理发店接待室有n张椅子,工作室有1张椅子;没有顾客时,理发师睡觉;第一个顾客来到时,必须将理发师唤醒;顾客来时如果还有空座的话,他就坐在一个座位上等待;如果顾客来时没有空座位了,他就离开,不理发了;当理发师处理完所有顾客,而又没有新顾客来时,他又开始睡觉。

资源截图

代码片段和文件信息

#include
#include
#include
#define chair 5
#define max 1000
pthread_mutex_t the_mutex;
pthread_cond_t condbcondc;
int w=0;
void * barber(void * arg)
{
  for(int i=0;i  {
pthread_mutex_lock(&the_mutex);//互斥使用缓冲区
while(w==0)
pthread_cond_wait(&condb&the_mutex);
w--;
printf(“is cutting hairthe number of consumer is:%d\n“w);
pthread_cond_signal(&condc);//唤醒消费者
pthread_mutex_unlock(&the_mutex);//释放缓冲区
    sleep(2);
  }
}
void * consumer(void * arg)
{
  for(int i=0;i  {
pthread_mutex_lock(&the_mutex);//互斥使用缓冲区
if(w>=

评论

共有 条评论