生産者消費者アルゴリズムの実現


生産者消費者アルゴリズムは古典的なプロセス同期アルゴリズムであり、以下はC++シミュレーションを用いて生産者消費者アルゴリズムを実現し、バッファプールへの反発アクセスと生産者プロセスと消費者プロセスの同期を実現することができる.
実現構想:C++で生産者と消費者クラスを書き、その中に構造関数があり、製品を指すポインタを初期化し、製品数と反発信号量mutex(反発アクセスcount)を書き、次に生産者と消費者アルゴリズムを書きました.プライマリ関数では、生産者消費者をループ呼び出し、呼び出すたびにバッファの製品ステータスと数を出力します.
ソース:
#include 
#include 
#include 
#define N 100	//    
using namespace std;

/*       */
class PandC{
private:
	int in,out;//        
	int count;//       
	int buffer[N];//   
	int mutex;//     
	int  empty,full;//            
public:
	/*   ,        */
	PandC(){
		in=0;out=0;count=0;
		empty=N;full=0;mutex=1;
		for(int i=0;i80)//          
		x.Producer();
	else
		x.Consumer();
	x.Display();
	i++;
	}while(i!=1000);

	return 0;
}

简単に生产者の消费者のアルゴリズムを実现して、0,1で制品があるかどうかを表して、やはり抽象的すぎて、もし进度条のあのような形式を使うことができればもっと良くて、しかし能力は有限で、ただその中のアルゴリズムの思想を実现して、やはり学习して、改善する必要があります.