您现在的位置: 精品资料网 >> 企业管理 >> 管理知识 >> 资料信息

生产者与消费者算法(doc 8页)

所属分类:
管理知识
文件大小:
606 KB
下载地址:
相关资料:
生产者,消费者
生产者与消费者算法(doc 8页)内容简介
生产者与消费者算法内容提要:
#include<windows.h>
#include<fstream.h>
#include<stdio.h>
#include<string>
#include<conio.h>
//定义一些常量;
//本程序允许的最大临界区数;
#define MAX_BUFFER_NUM 10
//秒到微秒的乘法因子;
#define INTE_PER_SEC 1000
//本程序允许的生产和消费线程的总数;
#define MAX_THREAD_NUM 64
//定义一个结构,记录在测试文件中指定的每一个线程的参数
struct ThreadInfo
{
 int serial;        //线程序列号
 char entity;           //是P还是C
 double delay;       //线程延迟
 int thread_request[MAX_THREAD_NUM];  //线程请求队列
 int n_request;       //请求个数
};
//全局变量的定义
//临界区对象的声明,用于管理缓冲区的互斥访问;
CRITICAL_SECTION PC_Critical[MAX_BUFFER_NUM];
int         Buffer_Critical[MAX_BUFFER_NUM]; //缓冲区声明,用于存放产品;
HANDLE    h_Thread[MAX_THREAD_NUM];  //用于存储每个线程句柄的数组;
ThreadInfo Thread_Info[MAX_THREAD_NUM];  //线程信息数组;
HANDLE empty_semaphore;      //一个信号量;
HANDLE h_mutex;        //一个互斥量;
DWORD  n_Thread = 0;          //实际的线程的数目;
DWORD  n_Buffer_or_Critical;        //实际的缓冲区或者临界区的数目;
HANDLE h_Semaphore[MAX_THREAD_NUM]; //生产者允许消费者开始消费的信号量;

..............................