c實現生產者消費者問題。 windows下。

2021-09-26 20:14:30 字數 984 閱讀 1548

#include

#include

#define p(s) waitforsingleobject(s,infinite)//定義windows下的p操作

#define v(s) releasesemaphore(s,1,null)//定義windows下的v操作

//生產者 消費者 緩衝區

#define num_of_productors 2

#define num_of_consumers 3

#define num_of_buffers 3

int nextp = 1; //下乙個產品的編號

int in = 0, out = 0; //分別指向下乙個存放產品和取出產品的緩衝區編號

int g_buffer[num_of_buffers] = ; //緩衝區初始值為空

handle g_hsemaphoreempty, g_hsemaphorefull, g_hmutex;

//生產者執行緒函式

dword winapi producerthreadfun(lpvoid pm)

while(true);

return 0;

}//消費者執行緒函式

dword winapi consumerthreadfun(lpvoid pm)

while (true);

}int main()

//繼承/初始棧大小/執行緒函式/向執行緒函式傳遞的引數/執行緒標誌 0 表示建立後立即啟用/儲存新執行緒的id

for (int i = num_of_productors; i < num_of_productors + num_of_consumers; i++) //建立消費者者執行緒

waitformultipleobjects(threadnum, hthread, true, infinite);

system("pause");

return 0;

}

C 實現「生產者消費者」問題

有時候我們做專案時不免遇到這樣乙個問題 我們需要做乙個功能,該功能需要處理來自於其他地方的資料,但是你需要保證任務需要乙個乙個循序漸進的進行,與此同時,資料 的時機不可預知,有時任務一下子來了100條,有時一下子只來了1條,你要怎樣處理這些資料,使得這些任務被執行的時候是一條一條的執行的。描述真含糊...

生產者消費者問題(C實現)

生產者消費者問題是作業系統中的乙個經典的問題。然後看了作業系統的書籍如何解決書上給的偽 是這樣的 item b k semaphore empty empty k 可以使用的空緩衝區數 semaphore full full 0 緩衝區內可以使用的產品數 semaphore mutex mutex ...

生產者消費者問題C 實現

2020 10 11 11 23 設計c c 程式 可以嵌入組合語言 以忙等待方式實現訊號量及其p v操作。利用你實現的訊號量,實現生產者 消費者問題。給出實現方法 主要源 和測試結果。include include include include include include include i...