资源简介
一个简单的有关于生产者和消费者问题的实例程序
代码片段和文件信息
#include “windows.h“
#include
#include
const unsigned short BUFFER_SIZE = 10;
short writer_id = 0;
short reader_id = 0;
short in = 0;
short out = 0;
int buffer[BUFFER_SIZE];
bool continu = true;
HANDLE hmutex;
HANDLE hfullsemaphore;
HANDLE hemptysemaphore;
double eRandom(int upLimit);
typedef struct
{ int data;
}INTEGER;
void Reader()
{
reader_id=buffer[out];
out=(out+1)%BUFFER_SIZE;
}
void Writer()
{
buffer[in]=writer_id;
in=(in+1)%BUFFER_SIZE;
}
DWORD WINAPI reader(LPVOID lppara)
{
while(continu){
WaitForSingleobject(hemptysemaphoreINFINITE);
WaitForSingleobject(hmutexINFINITE);
if(reader_id==10)
return 0;
int tNo=((INTEGER*)lppara)->data;
printf(“第 %d 个读者读出 %d \n“tNo++reader_id);
int sleepTime=20*(int)eRandom(50+tNo);
Sleep(sleepTime);
Reader();
ReleaseMutex(hmutex);
ReleaseSemaphore(hfullsemaphore1NULL);
}
return 0;
}
DWORD WINAPI writer(LPVOID lppara)
{
while(continu){
WaitForSingleobject(hfullsemaphoreINFINITE);
WaitForSingleobject(hmutexINFINITE);
if(writer_id==10)
return 0;
int tNo=((INTEGER*)lppara)->data;
printf(“第 %d 个写入者写入 %d \n“tNo++writer_id);
int sleepTime=10*(int)eRandom(50+tNo);
Sleep(sleepTime);
Writer();
ReleaseMutex(hmutex);
- 上一篇:socket文件传输C++
- 下一篇:C语言经典程序设计源代码之画图软件
相关资源
- DSP28335永磁同步电机控制
- 永磁同步电机的FOC控制算法
- dsp控制永磁同步电机
- ftp工具代码
- C++操作系统课设-进程管理
- 模拟进程管理c语言至少要有:创建新
- 操作系统进程管理实验
- C++检测托盘图标和枚举进程2免费
- VC6.0进程调度算法实现,作业调度 有
- 进程调度设计与实现
- MFC各种遍历
- 进程管理模拟实现含有模拟阻塞
- C++ 图形界面 实现文本编辑框输入同步
- 进程同步与互斥C++
- C语言编写的跨平台线程库
- C++ 进程内存搜索,特征码极速定位,
- 生产者消费者问题源码-MFC实现-进程模
- 操作系统实验 进程调度 高响应比优先
- 嗜睡的理发师进程同步与实现c++
- RTX与Windows进程通信互斥对象+共享内存
- 进程调度模拟算法C++实现
- 医务室模拟_vc/类/多线程
- 进程管理模拟 VC++ mfc实现
- 对无线传感器网络(WSN)中参考广播
- 操作系统课设源代码 模拟进程的并
- 操作系统进程间通信,用mfc实现
- C++ > (开源) Ring3下的DLL注入工具
- C++11编写的socket通信程序
- 进程/作业调度:时间片轮转调度算法
- 操作系统课程设计:进程/作业调度
评论
共有 条评论