资源简介

(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(&fu

评论

共有 条评论