资源简介
对操作系统中的生产者消费者算法进行模拟,是大家能用更容易的理解该算法。采用了MFC和多线程机制,有兴趣的可以看看
代码片段和文件信息
// 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
//生产者线程
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代表生产者 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个文件信息
- 上一篇:酒店管理系统c语言实现133784
- 下一篇:C++ TEST 6.0 破解
评论
共有 条评论