网站地图| 免费获取|
毕业论文网
  • 网站首页|
  • 论文范文|
  • 论文降重|
  • 职称论文发表|
  • 合作期刊|
  • 论文下载|
  • 计算机论文|
  • 外文翻译|
  • 免费论文|
  • 论文资料|
  • 论文开题报告
搜索

当前位置:毕业论文网 -> 免费论文 -> 计算机论文 -> 基于C++的读者与写者问题read—write problem的实现(六)
计算机论文资料| ASP设计| Delphi| VB设计| JSP设计| ASP.NET设计| VB.NET| java设计| VC| pb| VS| dreamweaver| c#.net| vf| VC++| 计算机论文范文| 论文下载| 自动化论文

基于C++的读者与写者问题read—write problem的实现(六)

最新活动:微信集50个赞就可获取任意一篇钻石会员文档。详情见微信集赞换文档
基于C++的读者与写者问题read—write problem的实现(六) ;  //延迟时间
 DWORD m_persist;                   //读文件持续时间
 int m_serial;                      //线程的序号
 //从参数中得到信息
 m_serial=((ThreadInfo*)(p))->serial ;

 m_delay=(DWORD)(((ThreadInfo*)(p))->delay *INTE_PER_SEC);
 m_persist=(DWORD)(((ThreadInfo*)(p))->persist *INTE_PER_SEC);
 Sleep(m_delay);                  //延迟等待

 printf("Reader thread %d sents the reading require.\n",m_serial);
 wait_for_mutex1=WaitForSingleObject(h_Mutex1,-1);

 //读者进去临界区
 EnterCriticalSection(&cs_Read);

 //阻塞互斥对象Mutex2,保证对readCount的访问和修改互斥
  wait_for_mutex2=WaitForSingleObject(h_Mutex2,-1);
  //修改读者的数目
  readcount++;
  if(readcount==1)
  {
   // 如果是第1个读者,等待写者写完
   EnterCriticalSection(&cs_Write);
  }
  ReleaseMutex(h_Mutex2);// 释放互斥信号 Mutex2
  //让其他读者进去临界区
  LeaveCriticalSection(&cs_Read);
  ReleaseMutex(h_Mutex1);
  //读文件
  printf("Reader thread %d begins to read file.\n",m_serial);
  Sleep(m_persist);

  //退出线程
   printf("Reader thread %d finished reading  file.\n",m_serial);
   //阻塞互斥对象Mutex2,保证对readcount的访问,修改互斥
   wait_for_mutex2=WaitForSingleObject(h_Mutex2,-1);
   readcount--;
   if(readcount==0)
   {
    //最后一个读者,唤醒写者
    LeaveCriticalSection(&cs_Write);
   }
   ReleaseMutex(h_Mutex2);  //释放互斥信号
}
///////////////////////////////////////////
//写者优先---写者线程
//P:写者线程信息


void WP_WriterThread(void *p)
{
 DWORD wait_for_mutex3;            //互斥变量
 DWORD m_delay;                   //延迟时间
 DWORD m_persist;                 //读文件持续时间
 int m_serial;                    //线程序号

 HANDLE h_Mutex3;
 h_Mutex3=OpenMutex(MUTEX_ALL_ACCESS,FALSE,"mutex3");

 //从参数中获得信息
 m_serial=((ThreadInfo*)(p))->serial ;
 m_delay=(DWORD)(((ThreadInfo*)(p))->delay *INTE_PER_SEC);
 m_persist=(DWORD)(((ThreadInfo*)(p))->persist *INTE_PER_SEC);
 Sleep(m_delay);                  //延迟等待

 printf("Writer thread %d sents the reading require.\n",m_serial);
 wait_for_mutex3=WaitForSingleObject(h_Mutex3,-1);
 writecount++;            &nb

首页 上一页 3 4 5 6 7 8 下一页 尾页 6/8/8

基于C++的读者与写者问题read—write problem的实现(六)由毕业论文网(www.huoyuandh.com)会员上传。
原创论文资料流程 相关论文
上一篇:C# 考务和成绩管理系统 下一篇:计算机公司销售业务管理系统
推荐论文 本专业最新论文
Tags:基于 读者 问题 read write problem 实现 2010-04-12 09:49:50【返回顶部】
精彩推荐
发表论文

联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士论文资料


毕业论文网提供论文范文,论文代发,原创论文资料

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 毕业论文网 版权所有