-
大小: 573KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-29
- 語言: C/C++
- 標(biāo)簽:
資源簡介
對操作系統(tǒng)中的生產(chǎn)者消費者算法進(jìn)行模擬,是大家能用更容易的理解該算法。采用了MFC和多線程機(jī)制,有興趣的可以看看

代碼片段和文件信息
//?AutoDisplay.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“GraduatedDesign.h“
#include?“AutoDisplay.h“
#include?“mmsystem.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//?AutoDisplay?dialog
//生產(chǎn)者線程
BOOL?AutoDisplay::first1(TRUE);
BOOL?AutoDisplay::first2(TRUE);
HANDLE?mutexObj;
HANDLE?semapFuLL;
HANDLE?SemapEmpty;
MSGINFO?ms1;
AutoDisplay::AutoDisplay(CWnd*?pParent?/*=NULL*/)
:?CDialog(AutoDisplay::IDD?pParent)pin(0)pout(0)switBT(TRUE)readyIn(FALSE)
{
//{{AFX_DATA_INIT(AutoDisplay)
//?NOTE:?the?ClassWizard?will?add?member?initialization?here
//}}AFX_DATA_INIT
for?(int?i=0;i<8;i++)
{
pThreadZ[i]=NULL;
}
mutexObj=CreateMutex(NULLFALSENULL);
semapFuLL?=?CreateSemaphore(NULL010NULL);
SemapEmpty?=?CreateSemaphore(NULL1010NULL);
}
void?AutoDisplay::DoDataExchange(CDataExchange*?pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(AutoDisplay)
DDX_Control(pDX?IDC_STOP?m_Stop);
DDX_Control(pDX?IDC_BEGINTHREAD?m_begButton);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(AutoDisplay?CDialog)
//{{AFX_MSG_MAP(AutoDisplay)
ON_WM_PAINT()
ON_MESSAGE(WM_USERBUTTON1OnUserButton1)
ON_MESSAGE(WM_USERBUTTON2OnUserButton2)
ON_BN_CLICKED(IDC_BEGINTHREAD?OnBeginthread)
ON_BN_CLICKED(IDC_STOP?onstop)
ON_WM_CLOSE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?AutoDisplay?message?handlers
//CEvent?eventObj(FALSETRUE);
//HANDLE?hEventobject?=?FALSE;
//CMutex?mutexObj(FALSE“mutex1“);
//CSemaphore?semapFuLL(010);
//CSemaphore?SemapEmpty(1010);
//擦出指針移動的痕跡?type=1代表生產(chǎn)者?type=0?代表消費者
void?AutoDisplay::KeepOut2(int?typeint?pos)
{
//pos-=1;
CClientDC?dc(this);
CRect?rc;
GetClientRect(&rc);
HANDLE?hWnd=GetSafeHwnd();
CRect?rc1(150+(rc.Width()-300)/10*(9-pos)+(rc.Width()-300)/2065
160+(rc.Width()-300)/10*(9-pos)+(rc.Width()-300)/2075);
CRect?rc2(150+(rc.Width()-300)/10*(9-pos)+(rc.Width()-300)/20136
160+(rc.Width()-300)/10*(9-pos)+(rc.Width()-300)/20148);
if?(type==1)
{
InvalidateRect(rc1true);
UpdateWindow();
}
else
{
InvalidateRect(rc2true);
UpdateWindow();
}
}
void?AutoDisplay::Trace2(int?typeint?pos)
{
CClientDC?dc(this);
CRect?rc;
GetClientRect(&rc);
int?pace;
CRect?rc1(150+(rc.Width()-300)/10*(9-pos)+(rc.Width()-300)/2065
160+(rc.Width()-300)/10*(9-pos)+(rc.Width()-300)/2075);
CRect?rc11(50359075);
CRect?rc2(150+(rc.Width()-300)/10*(9-pos)+(rc.Width()-300)/20136
190+(rc.Width()-300)/10*(9-pos)+(rc.Width()-300)/20178);
CPen???pen(PS_NULL0RGB(2005030));
CBrush?br(RGB(2005030));
CPen??*oldpen=dc.Selectobject(&pen);
CBrush?*oldbrush=dc.Selectobject(&br);
if?(type==1)
{
for?(pace=50;pace<=160+(rc.Width()-300)/10*(9-pos)+
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????11355??2013-04-18?19:46??GraduatedDesign\AutoDisplay.cpp
?????文件???????2016??2013-04-15?11:08??GraduatedDesign\AutoDisplay.h
?????文件????????996??2013-02-28?09:49??GraduatedDesign\Automic.cpp
?????文件???????1223??2013-02-28?09:49??GraduatedDesign\Automic.h
?????文件??????47152??2013-04-12?18:11??GraduatedDesign\consume.wav
?????文件??????18480??2013-04-12?18:11??GraduatedDesign\get.wav
?????文件????1365836??2013-04-28?12:39??GraduatedDesign\GraduatedDesign.aps
?????文件???????3800??2013-05-14?07:06??GraduatedDesign\GraduatedDesign.clw
?????文件???????2189??2013-02-25?18:12??GraduatedDesign\GraduatedDesign.cpp
?????文件????????426??2013-02-25?18:12??GraduatedDesign\GraduatedDesign.dep
?????文件???????5438??2013-04-22?18:56??GraduatedDesign\GraduatedDesign.dsp
?????文件????????555??2013-02-25?18:12??GraduatedDesign\GraduatedDesign.dsw
?????文件???????1423??2013-02-25?18:12??GraduatedDesign\GraduatedDesign.h
?????文件???????7947??2013-02-27?20:19??GraduatedDesign\GraduatedDesign.mak
?????文件?????107520??2013-06-08?11:47??GraduatedDesign\GraduatedDesign.ncb
?????文件??????50688??2013-06-08?11:47??GraduatedDesign\GraduatedDesign.opt
?????文件???????1617??2013-05-02?12:54??GraduatedDesign\GraduatedDesign.plg
?????文件??????10286??2013-04-28?12:39??GraduatedDesign\GraduatedDesign.rc
?????文件???????7121??2013-04-19?01:04??GraduatedDesign\GraduatedDesignDlg.cpp
?????文件???????1745??2013-04-19?00:24??GraduatedDesign\GraduatedDesignDlg.h
?????文件???????1240??2013-04-18?22:25??GraduatedDesign\Instruction.cpp
?????文件???????1235??2013-04-18?22:21??GraduatedDesign\Instruction.h
?????文件???????9642??2013-05-02?12:54??GraduatedDesign\ManualDisplay.cpp
?????文件???????1807??2013-04-16?18:20??GraduatedDesign\ManualDisplay.h
?????文件???????3650??2013-04-19?01:24??GraduatedDesign\MyButton.cpp
?????文件???????1352??2013-04-19?01:11??GraduatedDesign\MyButton.h
?????文件?????165936??2013-04-12?18:11??GraduatedDesign\produce.wav
?????文件???????3741??2013-02-25?18:12??GraduatedDesign\ReadMe.txt
?????文件????1091866??2013-02-25?18:28??GraduatedDesign\res\11.bmp
?????文件????????190??2013-02-26?13:05??GraduatedDesign\res\bitmap2.bmp
............此處省略14個文件信息
評論
共有 條評論