C 模擬「生產者消費者」程序同步問題

2021-08-02 10:49:16 字數 724 閱讀 5012

#include #include #include #include #include using namespace std;

const int limit = 30; //生產總量

const int maxsize = 10; //緩衝區大小

const int kind = 7;

int bufidx = 0; //當前緩衝區下標

string buf[maxsize]; //緩衝區 (字串)

//偽造的產品

handle mutex,full,empty;

handle disp; //用於控制螢幕列印的互斥鎖

//生產者子過程

dword winapi producer(lpvoid param)

cout << "producer quit!" << endl << endl;

return 0;

}//消費者子過程

dword winapi consumer(lpvoid param)

cout << "consumer quit!" << endl << endl;

return 0;

}int main()

//等待直到消費者執行緒執行完成

if (consumerhandle != null)

system("pause");

}

OS 程序同步 生產者消費者

注意 在每個程式中多個wait操作順序不可以顛倒。應先執行對資源訊號量的wait操作,然後再執行對互斥訊號量的wait操作,否則可能引起程序死鎖。概述 p操作 同步再前,互斥再後 記錄型訊號量 include using namespace std int in 0 佇列的隊首 int out 0 ...

Linux下程序同步問題 生產者消費者

設計思路,首先有緩衝區內資源,生產者消費者都用,而且是資源訊號量,那麼需要建立兩個訊號量,乙個代表空閒的個數,乙個代表非空閒個數。同時緩衝區的使用是互斥的,所以需要建立乙個互斥訊號量。include include include include include include include in...

程序模擬生產者 消費者問題

這裡我只是簡單實現了這個經典問題的思路與想打,並且書寫的程式也是能正確的執行出合理的答案,希望今後還可以改進程式使之更加完善 思路描述 1.生產者程序 產生乙個資料,當要送入緩衝區的時候,要檢查緩衝區是否已滿,若未滿,則可將資料送入緩衝區,並通知消費者程序,否則等待 2.對於消費者程序 當它去取資料...