-
大小: 1.84MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-10-03
- 語言: C/C++
- 標簽: 進程??同步互斥??操作系統(tǒng)??MFC??
資源簡介
本程序主要是利用進程間同步和互斥,模擬實現(xiàn)生產(chǎn)者和消費者在緩沖池的存取過程。
實現(xiàn)過程中,利用數(shù)組模擬緩沖池。生產(chǎn)者主要是往緩沖池中放物品,可用線程模擬對緩沖區(qū)數(shù)組的占用。消費者主要是從緩沖池中取物品,可用線程模擬對緩沖區(qū)數(shù)組空間的釋放。
進程之間的互斥和同步問題,即不允許消費者進程到一個空緩沖區(qū)去取產(chǎn)品,不允許生產(chǎn)者進程向一個裝滿產(chǎn)品的緩沖區(qū)中投放產(chǎn)品;也不允許多個生產(chǎn)者或消費者同時放或取,也不允許生產(chǎn)者和消費者同時放和取。

代碼片段和文件信息
//?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二次開發(fā)案例
- 下一篇:藍橋杯c語言歷年試題大全
評論
共有 條評論