资源简介
本程序主要是利用进程间同步和互斥,模拟实现生产者和消费者在缓冲池的存取过程。
实现过程中,利用数组模拟缓冲池。生产者主要是往缓冲池中放物品,可用线程模拟对缓冲区数组的占用。消费者主要是从缓冲池中取物品,可用线程模拟对缓冲区数组空间的释放。
进程之间的互斥和同步问题,即不允许消费者进程到一个空缓冲区去取产品,不允许生产者进程向一个装满产品的缓冲区中投放产品;也不允许多个生产者或消费者同时放或取,也不允许生产者和消费者同时放和取。
代码片段和文件信息
// Producer_Consumer.cpp : Defines the class behaviors for the application.
//
#include “stdafx.h“
#include “Producer_Consumer.h“
#include “Producer_ConsumerDlg.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CProducer_ConsumerApp
BEGIN_MESSAGE_MAP(CProducer_ConsumerApp CWinApp)
//{{AFX_MSG_MAP(CProducer_ConsumerApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP CWinApp::onhelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CProducer_ConsumerApp construction
CProducer_ConsumerApp::CProducer_ConsumerApp()
{
// TODO: add construction code here
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CProducer_ConsumerApp object
CProducer_ConsumerApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CProducer_ConsumerApp initialization
BOOL CProducer_ConsumerApp::InitInstance()
{
AfxEnableControlContainer();
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
CProducer_ConsumerDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
// Since the dialog has been closed return FALSE so that we exit the
// application rather than start the application‘s message pump.
return FALSE;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 114756 2011-12-18 10:15 Producer_Consumer\Debug\Producer_Consumer.exe
文件 239804 2011-12-18 10:15 Producer_Consumer\Debug\Producer_Consumer.ilk
文件 14986 2011-12-09 16:43 Producer_Consumer\Debug\Producer_Consumer.obj
文件 5500532 2011-12-06 20:29 Producer_Consumer\Debug\Producer_Consumer.pch
文件 427008 2011-12-16 21:47 Producer_Consumer\Debug\Producer_Consumer.pdb
文件 3440 2011-12-07 17:17 Producer_Consumer\Debug\Producer_Consumer.res
文件 44971 2011-12-16 21:49 Producer_Consumer\Debug\Producer_ConsumerDlg.obj
文件 105573 2011-12-06 20:29 Producer_Consumer\Debug\StdAfx.obj
文件 214016 2011-12-18 12:51 Producer_Consumer\Debug\vc60.idb
文件 380928 2011-12-16 21:47 Producer_Consumer\Debug\vc60.pdb
文件 22652 2013-04-19 10:46 Producer_Consumer\Producer_Consumer.aps
文件 2044 2013-04-19 10:47 Producer_Consumer\Producer_Consumer.clw
文件 2217 2011-12-06 15:18 Producer_Consumer\Producer_Consumer.cpp
文件 4357 2011-12-06 15:18 Producer_Consumer\Producer_Consumer.dsp
文件 540 2011-12-06 15:18 Producer_Consumer\Producer_Consumer.dsw
文件 1445 2011-12-06 15:18 Producer_Consumer\Producer_Consumer.h
文件 115712 2013-04-19 10:47 Producer_Consumer\Producer_Consumer.ncb
文件 51712 2013-04-19 10:47 Producer_Consumer\Producer_Consumer.opt
文件 747 2011-12-18 10:15 Producer_Consumer\Producer_Consumer.plg
文件 6757 2011-12-07 17:17 Producer_Consumer\Producer_Consumer.rc
文件 11042 2011-12-16 12:27 Producer_Consumer\Producer_ConsumerDlg.cpp
文件 2226 2011-12-08 21:47 Producer_Consumer\Producer_ConsumerDlg.h
文件 3777 2011-12-06 15:18 Producer_Consumer\ReadMe.txt
文件 1078 2011-12-06 15:18 Producer_Consumer\res\Producer_Consumer.ico
文件 409 2011-12-06 15:18 Producer_Consumer\res\Producer_Consumer.rc2
文件 1201 2011-12-07 17:02 Producer_Consumer\resource.h
文件 219 2011-12-06 15:18 Producer_Consumer\StdAfx.cpp
文件 1054 2011-12-06 15:18 Producer_Consumer\StdAfx.h
目录 0 2011-12-22 21:57 Producer_Consumer\Debug
目录 0 2012-10-30 22:07 Producer_Consumer\res
............此处省略4个文件信息
- 上一篇:UG二次开发案例
- 下一篇:蓝桥杯c语言历年试题大全
相关资源
- 操作系统实验 进程调度 高响应比优先
- 操作系统文件管理C++代码实现
- 嗜睡的理发师进程同步与实现c++
- 安徽大学操作系统实验八基于扫描的
- 安徽大学操作系统实验四主存空间的
- 操作系统——银行家算法
- 操作系统_生产者消费者c++、mfc实现
- RTX与Windows进程通信互斥对象+共享内存
- 进程调度模拟算法C++实现
- 磁盘调度c++模拟实现计算机操作系统
- 进程管理模拟 VC++ mfc实现
- 操作系统课设源代码 模拟进程的并
- 64位操作系统下win10、win7,VC6的所有问
- 操作系统课程设计之死锁检测
- 操作系统课程设计 哲学家进餐问题完
- 2010-2011华南理工大学操作系统课程设
- 操作系统进程间通信,用mfc实现
- 2013-2014华南理工大学操作系统课程设
- C++ > (开源) Ring3下的DLL注入工具
- 操作系统实验 请求分页存储管理(包
- 进程/作业调度:时间片轮转调度算法
- 嵌入式实时操作系统μC/OS-III(英文
- 操作系统课程设计:进程/作业调度
- 操作系统 进程调度 多级队列反馈
- 《基于LINUX的C++》教程课件,有详细的
- 自己动手写操作系统 于渊 高清带书签
- 操作系统读者写者写优先
- 消费者与生产者
- 操作系统八大调度算法c/c++实现
- 模拟操作系统的实现 C语言
评论
共有 条评论