程序問題(生產者消費者問題C )

2021-10-10 12:54:35 字數 1053 閱讀 8136

核心演算法為生產者程序與消費者程序的pv操作 其餘的都是簡單模擬

#include

#include

#include

#define maxsize 5

//緩衝區大小

typedef

int semaphore;

//訊號量

typedef

int production;

//物品

semaphore mutex =1;

semaphore empty = maxsize;

semaphore full =0;

semaphore buffer[maxsize]

;//緩衝池陣列

static

int buffersize =0;

//當前緩衝池元素個數

void

producer_thread()

;//生產者程序

void

consumer_thread()

;//消費者程序

production produce_item()

;//生產者生產物品

void

consume_item()

;//消費者消費物品

void

put_buffer

(production product)

;//物品存入緩衝區

production remove_buffer()

;//物品拿出緩衝區

void

p(semaphore& x)

void

v(semaphore& x)

production produce_item()

void

consume_item()

void

producer_thread()

}}void

consumer_thread()

}int

main()

生產者消費者問題

public class producer consumer class godown public godown int num public synchronized void produce int n catch interruptedexception e curr num n syste...

生產者 消費者問題

在學習程序互斥中,有個著名的問題 生產者 消費者問題。這個問題是乙個標準的 著名的同時性程式設計問題的集合 乙個有限緩衝區和兩類執行緒,它們是生產者和消費者,生產者把產品放入緩衝區,相反消費者便是從緩衝區中拿走產品。生產者在緩衝區滿時必須等待,直到緩衝區有空間才繼續生產。消費者在緩衝區空時必 須等待...

生產者 消費者問題

1 程序互斥問題 緩衝區b是臨界資源,程序p和c不能同時對b進行操作,即只能互斥的操作 2 程序同步問題 p不能往 滿 的的緩衝區b放產品,c不能從空的緩衝區獲得產品。當緩衝區滿時,c必須先於p執行,當緩衝區空時,p必須先於c執行 我們給出如下基於記錄型 二元 訊號量機制的解法 10 9 2013 ...