资源简介
本程序主要是利用进程间同步和互斥,模拟实现生产者和消费者在缓冲池的存取过程。
实现过程中,利用数组模拟缓冲池。生产者主要是往缓冲池中放物品,可用线程模拟对缓冲区数组的占用。消费者主要是从缓冲池中取物品,可用线程模拟对缓冲区数组空间的释放。
进程之间的互斥和同步问题,即不允许消费者进程到一个空缓冲区去取产品,不允许生产者进程向一个装满产品的缓冲区中投放产品;也不允许多个生产者或消费者同时放或取,也不允许生产者和消费者同时放和取。

代码片段和文件信息
// 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语言模拟文件管理系统844
- 操作系统课设 读写者问题 c语言实现
- ROS操作系统入门讲义
- ftp工具代码
- Linux操作系统下C语言编程从零开始
- 操作系统存储管理实验报告c/c++
- 操作系统课程设计(银行家算法)附
- 现代操作系统第三版高清
- C++操作系统课设-进程管理
- 模拟进程管理c语言至少要有:创建新
- 哲学家进餐问题的c++模拟实现
- 操作系统课程设计(生产者-消费者存
- 操作系统——5个实验.zip
- 操作系统进程管理实验
- C++检测托盘图标和枚举进程2免费
- 操作系统—页面置换算法C++实现
- VC6.0进程调度算法实现,作业调度 有
- 进程调度设计与实现
- 操作系统 内存管理 模拟 图形界面
- 银行家算法 mfc 含源代码 界面 操作系
- 操作系统生产者消费者问题MFC动态实
- MFC各种遍历
- 进程管理模拟实现含有模拟阻塞
- 操作系统课程设计:Windows 命令接口之
- 操作系统课程大作业-文件管理系统
- C语言实现最低松弛度优先算法源代码
- 进程同步与互斥C++
- 操作系统信号量PV经典问题:沉睡的理
- 基于C++的银行家算法模拟实现
- C++ 进程内存搜索,特征码极速定位,
评论
共有 条评论