資源簡介
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\
- 上一篇:c語言版圖書管理系統-c語言程序設計-期末大作業
- 下一篇:舞蹈機器人C語言程序
評論
共有 條評論