设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> Visual C++ >> 用vc实现生产者消费者问题
精品推荐
Visual C++点击TOP10
·用WINSOCK实现聊天室的VC++程序设计
·利用mfc编写activex控件
·用vc实现生产者消费者问题
·DirectX8.0
·C/C++ 大量经典编程书籍下载
·VC快捷键大全
·CreateFileMapping的MSDN翻译和使用心得
·Windows环境下的麦克风录音系统
·挂钩Windows API
·如何开发OPC Server
编程开发点击TOP10
·数字小键盘指法练习
·用C语言编通讯录程序(初学者级别的)
·ASP.NET 程序中常用的三十三种代码
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·java笔试题
·Modem 常用AT指令集
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

用vc实现生产者消费者问题

作者: 来源:网络文章 时间:2005-12-13 17:19:19

用vc实现生产者消费者问题(2) //////////////////////////////////////////////////////////
CProducerThread::CProducerThread(void* hParent)
:m_pParentDlg(hParent)
{
}

int CProducerThread::Run()
{
 CP_CDlg *pDlg;
 pDlg=(CP_CDlg*)m_pParentDlg;
 CSingleLock mutexLock(pDlg->m_pMutex);

 for(int i=0;i<MAX_DATA_COUNT;i++)
 {
  pDlg->m_pSemaphoreEmpty->Lock();
   mutexLock.Lock();
    pDlg->m_sBuf.Format("%0.10d",i);   
   mutexLock.Unlock();
  pDlg->m_pSemaphoreFull->Unlock(); 
 }

 return CWinThread::Run();
}
CConsumerThread::CConsumerThread(void *pParent)
:m_pParent(pParent)
{

}
int CConsumerThread::Run()
{
 CP_CDlg *pDlg;
 pDlg=(CP_CDlg*)this->m_pParent;
 char*pBuf;
 pBuf=this->m_Data;
 bool bSleep;
 for(int i=0;i<MAX_DATA_COUNT;i+=10)
 {
  pDlg->m_pSemaphoreFull->Lock();
   pDlg->m_pMutex->Lock();
    sprintf(pBuf,pDlg->m_sBuf);
    bSleep=pDlg->m_bSlow ;
   pDlg->m_pMutex->Unlock();   
    pBuf+=10;
    if(pBuf>m_Data+CSM_BUF_COUNT-10)
     pBuf=m_Data;
    m_Data[CSM_BUF_COUNT]=0;
   pDlg->m_pMutex->Lock();
    sprintf(pDlg->m_sBufCSM.GetBuffer(CSM_BUF_COUNT+10),m_Data);
   pDlg->m_pMutex->Unlock();
   if (bSleep)
    Sleep(100);
  pDlg->m_pSemaphoreEmpty ->Unlock();
 }
 

 return CWinThread::Run();
}
//////////////////////////////////////////////////////////
3启动线程:
//////////////////////////////////////////////////////////
 m_pSemaphoreFull =new CSemaphore(1,1);
 m_pSemaphoreEmpty =new CSemaphore(0,1);

共3页 9 7 [1] [2] [38 :>

用vc实现生产者消费者问题 相关文章:
用vc实现生产者消费者问题 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com