资源简介

linux系统c语言实现爸爸儿子女儿简单消费者问题苹果橘子拿与放问题, 资源共享,线程互斥,使用简单的无名信号量解决

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include

sem_t mutex appleemptyorange;


void *father(void *arg)
{
while(1)
{
sem_wait(&empty);
sem_wait(&mutex);
srand((unsigned int)time(NULL));
int num=rand()%100+0;
if(num%2==0)
{
sem_post(&apple);
printf(“Father produces an apple!\n“);
int a;
sem_getvalue(&apple&a);
printf(“现在apple有:“a);
}
else
{
sem_post(&orange);
printf(“Father produces an orange!\n“);
int a;
sem_getvalue(&apple&a);
printf(“现在apple有:“a);

}
sem_post(&mutex);
sleep(1);
}
}
void *son(void *arg)
{
while(1)
{
sem_wait(&orange);
sem_wait(&mutex);
sem_post(&empty);
printf(“Son consumes an orange!\n“);
sem_post(&mutex);
sleep(1);
}

}

void *daughter(void *arg)
{
whil

评论

共有 条评论