生产者消费者伪码_生产者消费者问题代码

最佳答案

#include

#include

#include

#include

#include

//

定义一些常量;

//

本程序允许的最大临界区数;

#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;

//

实际的缓冲区或者临界区的数目;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值