资源简介

Linux C语言 实现利用多进程或多线程模拟实现生产者/消费者问题。 (站在巨人的肩膀上)

资源截图

代码片段和文件信息

#include  
#include  
#include 
#include 

#define SIZE 15
 
static sem_t mutex;  
static sem_t fullempty; 

struct product{ 
    char products[SIZE]; 
    int firstend; 
    int num;                 
};
struct product *p;

void *producter() 
{
char c;
while(1){ 
sem_wait(&empty); 
    sem_wait(&mutex);
c=‘a‘+rand() % 26;
p->products[p->end]=c;
p->end=(p->end+1)%SIZE ;
p->num=p->num+1;
printf(“proceducer生产了%c.........产品总数为%d\n“cp->num);     
sem_post(&mutex);
sem_post(&full);
sleep(rand()%3);
}           
}

void *consumer() 
 {
char c;
while(1){ 
sem_wait(&full); 
    sem_wait(&mutex);
c=p->products[p->first];
p->first=(p->first+1)%15;
p->num=p->num-1;
printf(“consu

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1370  2012-12-30 19:28  dd\dd.c
     文件         111  2012-12-30 19:33  dd\操作说明.txt
     目录           0  2012-12-30 19:34  dd\

评论

共有 条评论