• 大小: 573KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: C/C++
  • 标签:

资源简介

对操作系统中的生产者消费者算法进行模拟,是大家能用更容易的理解该算法。采用了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个文件信息

评论

共有 条评论

相关资源