生產者消費者執行緒

2021-06-26 19:58:48 字數 1290 閱讀 2152

#include#include#include#includeusing namespace std; 

typedef int semaphore;/*訊號量是一種特殊的整型變數*/

const int size_of_buffer=5;//緩衝區長度

const unsigned short producers_count=2;//生產者的個數

const unsigned short consumers_count=3;//消費者的個數

dword producers[producers_count];//生產者執行緒的識別符號

dword consumers[consumers_count];//消費者執行緒的識別符號

const unsigned short threads_count=producers_count+consumers_count;//總的執行緒數

/**

*定義訊號量

*/ handle mutex;//互斥訊號量

handle full;//表示放有產品的緩衝區數,其初值為0

handle empty;//表示可供使用的緩衝區數,其初值為n

/**

*定義共享緩衝區

*/ semaphore buffer[size_of_buffer];

/**

*定義生產者和消費者使用的指標

*/ int in=0;

int out=0;

int productnum=0;

dword winapi producer(lpvoid);

dword winapi consumer(lpvoid);

int main(int argc,char*argv)

//建立消費者執行緒

for(int i=0;ibool iscontinue=true;

while(iscontinue) }

system("pause");

return 0;

}void enbuffer(int pos)

void debuffer(int pos)

/**

*生產者

*/ dword winapi producer(lpvoid lpparam)

return 0;

}/**

*消費者

*/ dword winapi consumer(lpvoid lppara)

return 0;

}

生產者消費者執行緒

該簡單生產者 消費者執行緒,屬於本人學習過程中的一段練習 如有不足,請指點 package com.lanqiao.demo3 author 大廣子 類說明 簡單的生產者,消費者執行緒 public class threadptcs catch interruptedexception e 退出 s...

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...

多執行緒 生產者消費者

這個就不多說了,直接上 include include using namespace std const unsigned short size of buffer 10 緩衝區長度 unsigned short productid 0 產品號 unsigned short consumeid 0...