include
#include
#include
#include
#include
#include
#define size_of_buffer 10
int buffer[size_of_buffer];//緩衝陣列
int in=0,out=0;//採用迴圈佇列方式進行陣列的訪問
//宣告訊號量
sem_t full;
sem_t empty;
pthread_mutex_t mutex;//用於互斥
int insert_item(int item)//插入item
int remove_item()// 移出item 並返回當前移出值
void * producer(void * pram)//生產者函式
else
pthread_mutex_unlock(&mutex);
sem_post(&full);}}
void * consumer (void * pram)//消費者函式
else
pthread_mutex_unlock(&mutex);
sem_post(&empty);}}
int main()
生產者消費者 生產者與消費者模式
一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...
生產者與消費者
include include include include include include handle mutex 互斥訊號量 handle full 滿緩衝區訊號量計數 handle empty 空緩衝區訊號量計數 void producer 生產者函式 void consumer 消費者函...
生產者與消費者
include include include include include include define size of buffer 10 int buffer size of buffer 緩衝陣列 int in 0,out 0 採用迴圈佇列方式進行陣列的訪問 宣告訊號量 sem t ful...